在XAML代码中
<StackPanel>
<ScrollViewer>
<local:CustomCanvas>
</local:CustomCanvas>
</ScrollViewer>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
CustomCanvs具有放大/缩小功能。但是,当我在CustomCanvas区域中旋转鼠标滚轮时,ScrollViewer的滚动条将起作用,而放大/缩小将不起作用。当我滚动ScrollViewer的滚动条时,不仅CustomCanvas的放大/缩小工作正常,而且ScrollViewer的滚动工作都很好。
旋转鼠标滚轮时,我只想放大/缩小。当我滚动滚动条时,我只想滚动即可工作。
如何防止ScrollViewer的鼠标滚轮事件使鼠标滚轮旋转?以及如何防止ScrollViewer滚动条滚动放大/缩小?请帮忙
我正在使用
BitmapImage sharerimg;
sharerimg = new BitmapImage(new Uri("F:/workspace/wpf/NetworkMFServer/NetworkMFServer/imageresources/sharer.png"));
Image im = new Image();
im.Source = sharerimg;
Run Code Online (Sandbox Code Playgroud)
但我将图像添加到资源并对此进行编码
Assembly assembly = Assembly.GetExecutingAssembly();
string strBaseName = assembly.GetName().Name + ".Properties.Resources";
ResourceManager rm = new ResourceManager(strBaseName, assembly);
Image im = new Image();
im=(Image)rm.GetObject("sharer");
Run Code Online (Sandbox Code Playgroud)
但是这个显示错误
“无法将‘System.Drawing.Bitmap’转换为‘System.Windows.Controls.Image’”
如何使用图像资源来应用 System.Windows.Controls.Image .Source 属性?
我只是想知道今晚free()调用struct成员时会发生什么.让我们看一下c中的简单代码.
typedef struct {
int c[5];
int a[10];
int *b;
}stma;
int main() {
stma *he = (stma*)malloc(sizeof(stma));
int *ac = he->a;
free(ac); //This point is crash.
return 0;
}
Run Code Online (Sandbox Code Playgroud)
免费制造崩溃.但是下一个代码运行良好.
typedef struct {
int c[5];
int a[10];
int *b;
}stma;
int main() {
stma *he = (stma*)malloc(sizeof(stma));
int *ac = he->c; //This point is changed.
free(ac); //Work well.
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当然,我认为第二个可以正常工作,第一个也不是正确的代码.
我想知道在第一次执行期间会发生什么.free()free'a'变量,struct的中间,不是struct的地址.
he-> a不是malloced,动态分配,不能免费.在这种情况下,he-> c存储器地址为00D2Ad50,而he-> a为00D2AD64.struct变量将由malloc()放在堆中.他 - > c的地址与'他'相同.而他 - > c + 4*5是他 - > a.他 - …