Wpf 如何重用控件模板?
我可以创建参数化控件模板,即创建可能包含不同控件的控件模板。例如,我可以使用带有标签或按钮的控件模板-在某个位置上我想要的任何东西Wpf 如何重用控件模板?,wpf,Wpf,我可以创建参数化控件模板,即创建可能包含不同控件的控件模板。例如,我可以使用带有标签或按钮的控件模板-在某个位置上我想要的任何东西 <ControlTemplate x:Key="MessageCTemplate"> <Grid …> <Rectangle …/> <Rectangle …/> <Rectangle …/> … <!--I want to have here button, label or w
<ControlTemplate x:Key="MessageCTemplate">
<Grid …>
<Rectangle …/>
<Rectangle …/>
<Rectangle …/>
…
<!--I want to have here button, label or whatever I want-->
<label x:Name=”MsgLabel”>
<Grid/>
<Style x:Key="MsgStyle" TargetType="{x:Type Button}">
<Setter Property="Opacity" Value="0.6" />
<Setter Property="Template" Value="{StaticResource MessageCTemplate}" />
<Style/>
…
我不喜欢编写代码中只有一个不同字符串的相同控件模板。或者,也许我误解了smth,还有另一种避免复制过去的方法。您所描述的是ContentControl。这是许多常用控件的基类,包括按钮、标签、ListBoxItem ContentControl的思想是,它可以定义自己的布局和一些UI元素,还可以包含一个占位符,在其中可以插入任何设置为其内容属性的内容。还有一个HeaderedContentControl,允许为其他内容设置两个占位符
<ControlTemplate x:Key="MessageCTemplate" TargetType="{x:Type ContentControl}">
<Grid …>
<Rectangle …/>
<Rectangle …/>
<Rectangle …/>
<ContentPresenter/> <!-- This is where the content shows up -->
<Grid/>
</ControlTemplate>
<Button Template="{StaticResource MessageCTemplate}">
<Label Content="My label"/>
</Button>
<Button Template="{StaticResource MessageCTemplate}">
<Ellipse Fill="Orange" Width="100" Height="30"/>
</Button>