Я использую WPF в Visual Studio 2008. У меня есть простой WPF UserControl со следующим кодом:
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
Composite = new Composite();
}
protected override void OnRender(DrawingContext drawingContext)
{
//LayoutRoot is name of default Grid instance
if (!LayoutRoot.Children.Contains(Composite))
{
LayoutRoot.Children.Add(Composite);
}
}
public Composite Composite
{
get;
set;
}
}
public class Composite : ContentControl
{
protected override void OnRender(DrawingContext drawingContext)
{
drawingContext.DrawRectangle(new SolidColorBrush(Color), new Pen(Brushes.Black, 1.0), new Rect(RenderSize));
}
public Color Color
{
get;
set;
}
}
Затем я использую этот UserControl в приложении WPF, XAML страницы выглядит следующим образом:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:test="clr-namespace:WpfControlLibrary1;assembly=WpfControlLibrary1"
Title="Window1" Height="500" Width="700" Background="AliceBlue">
<test:UserControl1 Name="uControl1">
<test:UserControl1.Composite>
<test:Composite Color="Green"/>
</test:UserControl1.Composite>
</test:UserControl1>
</Window>
У меня вопрос: какой код мне нужно добавить к вышеперечисленному, чтобы при изменении «Составного цвета» на что-то иное, кроме зеленого и нажатие кнопки возврата, UserControl автоматически обновлялся? Я ищу поведение, которое происходит, когда вы меняете фон Window1 на цвет, отличный от AliceBlue, и нажимаете return.
Когда я запускаю код, виден правильный цвет, проблема заключается в обновлении во время разработки через XAML.
Большое спасибо за любые указатели, которые помогают мне понять, что здесь происходит!