2

我想在 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”

4

3 回答 3

4

Button有一个Content属性,你可以在BitmapImage其中转储一个:

BitmapImage image = new BitmapImage(new Uri("your source"));
TheButton.Content = image;
于 2012-06-19T13:14:07.373 回答
1

the setter is not used in c# code, its a helper class to build styles in xamls. Just use this code.

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;
于 2012-06-19T13:16:41.617 回答
0
   <ControlTemplate x:Key="image"> //XAML in window resources tag
            <Image Source="Save.png"/>
   </ControlTemplate>


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

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

于 2012-06-19T13:46:52.900 回答