WPF Setter类

5lhxktic  于 2023-03-31  发布在  其他
关注(0)|答案(3)|浏览(212)

我想用C#创建一个按钮,里面没有内容,只有一个图像。
我不知道如何使用二传手,谁能教教我?

Setter setter = new Setter();
            setter.Property = Image.SourceProperty;
            setter.Value = "asd.jpg";  //<--error

            Style Rstyle = new Style();
            Rstyle.TargetType = typeof(Button);
            Rstyle.Setters.Add(setter);

            Button _Button = new Button()
            {
                Width = 41,
                Height = 41
            };

            _Button.Style = Rstyle;

我应该在setter.value中放置什么来获取驻留在项目目录.“asd.jpg”中的图像

dsf9zpds

dsf9zpds1#

Button有一个Content属性,您可以直接将BitmapImage转储到其中:

BitmapImage image = new BitmapImage(new Uri("your source"));
TheButton.Content = image;
agxfikkp

agxfikkp2#

对于这个问题,setter不是必需的。setter用于触发器和样式,无论是在C#还是在XAML中。
只要使用这个代码。

BitmapImage bmp = new BitmapImage()
bmp.BeginInit();
bmp.UriSource = new Uri("pack://application:,,,/ApplicationName;component/Resources/myImage.png");
bmp.EndInit();
Image image = new Image();
image.Source = bmp;
myButton.Content = image;
ar5n3qh5

ar5n3qh53#

<ControlTemplate x:Key="image"> //XAML in window resources tag
            <Image Source="Save.png"/>
   </ControlTemplate>

btn.Template =  (ControlTemplate)FindResource("image");

我认为这是更灵活和可重用的。

相关问题