我必须为弹出窗口创建样式。我使用的是WPF和.NET Framework 4。
我写的风格:
<Style x:Key="PopupBox" TargetType="{x:Type Popup}">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Popup}">
<Grid>
<Border BorderBrush="Blue" Background="#FFFFFFFF">
<Grid>
<Border Background="AliceBlue"/>
<ContentPresenter ContentSource="Header" />
<ContentPresenter/>
<Border BorderBrush="#FFFFFFFF" Background="#FFBFDBFF"/>
</Grid>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我已经从这段代码中删除了一些元素,比如网格行和列的定义,因为它们并不重要。
因此,我似乎不能使用<Setter Property="Template">
,因为Popup控件没有这个属性。我该如何解决这个问题?
这里的任何帮助都非常感谢!
2条答案
按热度按时间omtl5h9j1#
由于Popup没有任何模板,只有一个
Child
属性用于内容,您可以使用其他控件(例如ContentControl
)来设置样式和模板:然后将其放入需要它的每个
Popup
中:goqiplq22#
由于Control类公开了Template属性,因此只能为从
Control
类继承的控件设置Template。但由于PopUp是直接从FrameworkElement
类继承的,因此您不能设置其Template属性。作为一种解决方法,您可以如下设置其Child属性-