我试图定义一个自定义控件,它承载StackPanel中的所有子元素(在我的例子中是子元素),其中StackPanel应该应用并扩展按钮样式
<ItemsControl.Resources>
<Style TargetType="sharedUserControls:ButtonBarControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="sharedUserControls:ButtonBarControl">
<StackPanel
Orientation="Horizontal"
IsItemsHost="True"
FlowDirection="{Binding Path=ButtonBarFlowDirection, ElementName=ButtonBar}">
<StackPanel.Resources>
<Style TargetType="Button" BasedOn="{StaticResource DialogButton}">
<Setter Property="Margin" Value="{Binding Path=ButtonMargin, ElementName=ButtonBar}"/>
</Style>
</StackPanel.Resources>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ItemsControl.Resources>
字符串
第一部分工作,我可以使用这个自定义控件的方式,我想,但风格的按钮是不适用于堆栈面板。为什么不呢?
我也试
<ItemsControl.Resources>
<Style TargetType="sharedUserControls:ButtonBarControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="sharedUserControls:ButtonBarControl">
<StackPanel
Style="{StaticResource ButtonBarStackPanel}"
Orientation="Horizontal"
IsItemsHost="True"
FlowDirection="{Binding Path=ButtonBarFlowDirection, ElementName=ButtonBar}">
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ItemsControl.Resources>
型
在我的Styles.xaml中,
<Style TargetType="StackPanel" x:Key="ButtonBarStackPanel">
<Style.Resources>
<Style TargetType="Button" BasedOn="{StaticResource DialogButton}">
<Setter Property="Margin" Value="5"/>
</Style>
</Style.Resources>
</Style>
型
但这给出了相同的结果,我找不到任何方法来应用所需的样式对堆栈面板的儿童(按钮)
1条答案
按热度按时间0mkxixxg1#
我提出了以下解决方案,我只需指定
ControlTemplate.Resources
字符串
这让我可以这样使用它
型