小编Lig*_*tar的帖子

在scrollviewer wpf中禁用鼠标滚轮滚动

在XAML代码中

<StackPanel>
 <ScrollViewer>
  <local:CustomCanvas>
  </local:CustomCanvas>
 </ScrollViewer>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

CustomCanvs具有放大/缩小功能。但是,当我在CustomCanvas区域中旋转鼠标滚轮时,ScrollViewer的滚动条将起作用,而放大/缩小将不起作用。当我滚动ScrollViewer的滚动条时,不仅CustomCanvas的放大/缩小工作正常,而且ScrollViewer的滚动工作都很好。

旋转鼠标滚轮时,我只想放大/缩小。当我滚动滚动条时,我只想滚动即可工作。

如何防止ScrollViewer的鼠标滚轮事件使鼠标滚轮旋转?以及如何防止ScrollViewer滚动条滚动放大/缩小?请帮忙

wpf scroll scrollbar mousewheel scrollviewer

5
推荐指数
1
解决办法
2529
查看次数

从资源加载图像并应用于 Image.source

我正在使用

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 属性?

c# wpf resources image

4
推荐指数
1
解决办法
5362
查看次数

在c中struct的成员中间调用free时会发生什么?

我只是想知道今晚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.他 - …

c malloc free struct

1
推荐指数
1
解决办法
71
查看次数

标签 统计

wpf ×2

c ×1

c# ×1

free ×1

image ×1

malloc ×1

mousewheel ×1

resources ×1

scroll ×1

scrollbar ×1

scrollviewer ×1

struct ×1