Ответ 1
Способ, который работал у меня, - иметь встроенный текстовый блок и изменить фон на текстовый блок.
Как вы рисуете прямоугольник в С#, который был объявлен в XAML в WPF?
В XAML есть элемент управления прямоугольником. В моем коде С# есть моменты, когда было бы неплохо заполнить цвет фона. Как это сделать?
Способ, который работал у меня, - иметь встроенный текстовый блок и изменить фон на текстовый блок.
Для всех ленивых программистов перечисление цвета .net:
myRectangle.Fill = new SolidColorBrush(System.Windows.Media.Colors.AliceBlue);
Предполагая, что вы назвали свой прямоугольник 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));
Цвет прямоугольника в XAML для Windows Phone:
<Rectangle Width="480" Height="200">
<Rectangle.Fill>
<SolidColorBrush Color="Azure" />
</Rectangle.Fill>
</Rectangle>
Задайте свойство x:Name
в вашем XAML тому, что вы хотите сослаться на прямоугольник, как в коде С#. Затем вы можете получить доступ ко всем свойствам прямоугольника в коде, например whateverYouNamedIt.Fill
Rectangle blueRectangle = new Rectangle();
// Fill rectangle with blue color
blueRectangle.Fill = blueBrush;
Связывание 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, и пользовательский интерфейс будет обновляться.