我创建了一个从 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>
测试页.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 也支持背景画笔...