通过XAML从属性填充颜色

时间:2011-05-11 10:16:55

标签: wpf xaml

我正在学习WPF并且有这个简单的问题 如何将填充颜色设置为属性vi XAML?

<Rectangle Fill="{Binding Path=BackgroundColorf}" 
           Height="112" Margin="0,84,0,0" VerticalAlignment="Top" 
           Width="116"/>
public partial class MainWindow : Window
{

         /// <summary>
        /// Gets or sets the BackgroundColor.  
        /// </summary>
   public SolidColorBrush BackgroundColorf
   {
       get;
       set;
   }

   public MainWindow()
   {
       this.InitializeComponent();
       BackgroundColorf =  new SolidColorBrush(Colors.Red); 
   }
}

3 个答案:

答案 0 :(得分:1)

让你去...

为Rectangle添加名称

<Rectangle x:Name="MyRect" Fill="{Binding Path=BackgroundColorf}" Height="112" ...

然后在代码中

 InitializeComponent();
 MyRect.DataContext = this;
 BackgroundColorf = new SolidColorBrush(Colors.Red);

不是最好的做事方式 - 但至少你会有一个红色的矩形:)

答案 1 :(得分:1)

像这样设置datacontext

public MainWindow()
   {
       this.DataContext = this;      
       this.InitializeComponent();
       BackgroundColorf =  new SolidColorBrush(Colors.Red); 
   }

这应该可行。但是要让你的wpf应用程序可以像通知,依赖属性等那样进行扩展,还有很多工作要做。我建议你在继续之前先阅读wpf DataBinding架构的基础知识。浏览HB发布的链接评论

答案 2 :(得分:0)

如果你添加它,你的例子将起作用

public MainWindow()
{
   this.InitializeComponent();
   this.DataContext =  this;
   BackgroundColorf =  new SolidColorBrush(Colors.Red); 
}

但你应该在一些wpf书籍或网站上获得基础知识。

一本非常好的书是Adam Nathan的“WPF 4 Unleashed”。