Page から派生したカスタム コントロールを作成しました。
namespace The_Toolbox
{
public class BlancoPageControl : Page
{
static BlancoPageControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(BlancoPageControl), new FrameworkPropertyMetadata(typeof(BlancoPageControl)));
}
}
}
Generic.xaml では、前景色を設定できます。しかし、理由がわかりませんが、背景色を設定できません。
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:The_Toolbox">
<Style TargetType="{x:Type local:BlancoPageControl}">
<Setter Property="Foreground" Value="White"/>
<Setter Property="Background" Value="Violet"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:BlancoPageControl}">
...
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
TestPage.xaml:
<local:BlancoPageControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:The_Toolbox"
xmlns:res="clr-namespace:The_Toolbox.LocalResources"
mc:Ignorable="d"
x:Class="The_Toolbox.TestPage">
<StackPanel>
....
</StackPanel>
</local:BlancoPageControl>
ページが紫色になることを期待しますが、色の設定は無視されます。なんで?もちろん、境界線を追加してそこに背景色を追加することもできますが、Page は背景ブラシもサポートしています...