面板/边框的WPF样式,带有子/父触发器?

面板/边框的WPF样式,带有子/父触发器?,wpf,panel,styles,border,Wpf,Panel,Styles,Border,在XAML中是否可以 为面板定义样式,为每个面板创建边框 选择项目或其子项时,是否更改祖先项目(即边框背景)的样式 i、 e 我想让WidgetStyle定义(圆角)边框并更改边框颜色,例如,如果选择了ListView或按钮 谢谢 恐怕你第一个问题的答案是否定的!无法为面板控件设置模板,因为它们是无外观的。你能在这里做些什么。有几个选项,例如创建包含StackPanel的自定义控件。对这个问题的回答包括很多好的想法: 对于第二个问题,同样是否定的,您不能仅通过设置样式来根据子对象中的样

在XAML中是否可以

  • 为面板定义样式,为每个面板创建边框
  • 选择项目或其子项时,是否更改祖先项目(即边框背景)的样式
i、 e


我想让WidgetStyle定义(圆角)边框并更改边框颜色,例如,如果选择了ListView或按钮


谢谢

恐怕你第一个问题的答案是否定的!无法为面板控件设置模板,因为它们是无外观的。你能在这里做些什么。有几个选项,例如创建包含StackPanel的自定义控件。对这个问题的回答包括很多好的想法:

对于第二个问题,同样是否定的,您不能仅通过设置样式来根据子对象中的样式更改设置祖先的样式

您可以使用ElementName绑定将元素的某些属性连接在一起:

<Border Background={Binding ElementName=MyButton, Path=Tag>>
  <StackPanel Style="{StaticResource WidgetStyle}">
    <Label />
    <Button x:Name="MyButton"/>
    <StackPanel>
      <ListView />
    </StackPanel>
  </StackPanel>
</Border>
>

在上面,边框背景绑定到按钮“MyButton”的标记属性。然后,您可以对按钮应用样式,该样式设置标记属性,从而更改边框背景

恐怕你第一个问题的答案是否定的!无法为面板控件设置模板,因为它们是无外观的。你能在这里做些什么。有几个选项,例如创建包含StackPanel的自定义控件。对这个问题的回答包括很多好的想法:

对于第二个问题,同样是否定的,您不能仅通过设置样式来根据子对象中的样式更改设置祖先的样式

您可以使用ElementName绑定将元素的某些属性连接在一起:

<Border Background={Binding ElementName=MyButton, Path=Tag>>
  <StackPanel Style="{StaticResource WidgetStyle}">
    <Label />
    <Button x:Name="MyButton"/>
    <StackPanel>
      <ListView />
    </StackPanel>
  </StackPanel>
</Border>
>

在上面,边框背景绑定到按钮“MyButton”的标记属性。然后,您可以对按钮应用样式,该样式设置标记属性,从而更改边框背景

谢谢你,科林!>>对于第二个问题,同样不行,您不能仅通过样式设置来根据子对象中的样式更改来设置祖先的样式。谢谢Colin!>>对于第二个问题,同样是否定的,您不能仅通过设置样式来根据子对象中的样式更改设置祖先的样式。