Visual Studio 2008 内で WPF を使用しています。次のコードを含む単純な 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 の Background を AliceBlue 以外の色に変更して Return キーを押したときに起こることです。
コードを実行すると正しい色が表示されますが、問題は XAML を介したデザイン時の更新にあります。
ここで何が起こっているのかを理解するのに役立つポインタに感謝します!