如何在C#中为在WPF中的XAML中声明的矩形着色?

xar*_*rzu 21 c# wpf xaml visual-studio-2010

如何在C#中为在WPF中的XAML中声明的矩形着色?

XAML中有一个矩形控件.在我的C#代码中,有时候填充背景颜色会很好.怎么做到这一点?

小智 35

对于所有懒惰的程序员,.net颜色枚举:

myRectangle.Fill = new SolidColorBrush(System.Windows.Media.Colors.AliceBlue); 
Run Code Online (Sandbox Code Playgroud)

  • 甚至更好:myRectangle.Fill = System.Windows.Media.Brushes.AliceBlue;` (2认同)

Bri*_*ndy 12

假设您将矩形命名为myRectangle,则可以使用Fill属性为其着色:

myRectangle.Height = 200;
myRectangle.Width = 200;
myRectangle.Stroke = new SolidColorBrush(Color.FromRgb(0, 111, 0));
myRectangle.Fill = new SolidColorBrush(Color.FromRgb(0, 111, 111));
Run Code Online (Sandbox Code Playgroud)


Dav*_*las 9

XAML for Windows Phone中的矩形颜色:

<Rectangle Width="480" Height="200">
    <Rectangle.Fill>
        <SolidColorBrush Color="Azure" />
    </Rectangle.Fill>
</Rectangle>
Run Code Online (Sandbox Code Playgroud)

  • 这是使用 XAML 而不是 C# (2认同)

Voo*_*ild 7

Rectangle blueRectangle = new Rectangle();
// Fill rectangle with blue color
blueRectangle.Fill = blueBrush;
Run Code Online (Sandbox Code Playgroud)


ben*_*rce 7

Wpf绑定可以做到这一点,而无需在代码中通过名称引用控件:

<Rectangle Width="480" Height="200" Fill="{Binding Path=FillColor}"/>
Run Code Online (Sandbox Code Playgroud)

然后在DataContext类上放置一个属性,假设您已实现了INotifyPropertyChanged:

public Brush FillColor  
{   
  get { return this.fillColor; }   
  set
  {
     this.fillColor = value;
     if (PropertyChanged != null)
     {
       PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
     }   
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以将所需的颜色分配给FillColor属性,UI将自行更新.


Don*_*nie 5

x:Name您的XAML中的属性设置为您要在c#代码中引用矩形的内容.然后,您可以在代码中访问矩形的所有属性,例如whateverYouNamedIt.Fill