Как вы рисуете прямоугольник в С#, который был объявлен в XAML в WPF?

Как вы рисуете прямоугольник в С#, который был объявлен в XAML в WPF?

В XAML есть элемент управления прямоугольником. В моем коде С# есть моменты, когда было бы неплохо заполнить цвет фона. Как это сделать?

Ответы

Ответ 1

Способ, который работал у меня, - иметь встроенный текстовый блок и изменить фон на текстовый блок.

Ответ 2

Для всех ленивых программистов перечисление цвета .net:

myRectangle.Fill = new SolidColorBrush(System.Windows.Media.Colors.AliceBlue); 

Ответ 3

Предполагая, что вы назвали свой прямоугольник 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));

Ответ 4

Цвет прямоугольника в XAML для Windows Phone:

<Rectangle Width="480" Height="200">
    <Rectangle.Fill>
        <SolidColorBrush Color="Azure" />
    </Rectangle.Fill>
</Rectangle>

Ответ 5

Задайте свойство x:Name в вашем XAML тому, что вы хотите сослаться на прямоугольник, как в коде С#. Затем вы можете получить доступ ко всем свойствам прямоугольника в коде, например whateverYouNamedIt.Fill

Ответ 6

Rectangle blueRectangle = new Rectangle();
// Fill rectangle with blue color
blueRectangle.Fill = blueBrush;

Ответ 7

Связывание Wpf сможет сделать это без необходимости ссылаться на элемент управления по имени в коде:

<Rectangle Width="480" Height="200" Fill="{Binding Path=FillColor}"/>

Затем поместите свойство в свой класс DataContext, предположив, что вы внедрили INotifyPropertyChanged:

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

Затем вы можете присвоить свой необходимый цвет свойству FillColor, и пользовательский интерфейс будет обновляться.