【问题标题】:Styling WPF/Silverlight ComboBox样式化 WPF/Silverlight 组合框
【发布时间】:2011-05-22 22:58:22
【问题描述】:

我试图弄清楚如何更改 ComboBox 控件的弹出部分。我对自定义样式和模板不是很熟悉。

我有一个定义的弹出窗口,如下所示:

<Popup 
      Name="Popup"
      Placement="Bottom"
      IsOpen="{TemplateBinding IsDropDownOpen}"
      .....>
    .... some content
</Popup>

我知道 ComboBox 控件有一个名为“PART_Popup”的弹出窗口。如何用我自己的替换默认实现?

谢谢

【问题讨论】:

    标签: wpf silverlight xaml combobox styling


    【解决方案1】:

    您可以使用加载的事件并在后面的代码中搜索该部分来替换它,这可能不起作用,因为并非所有 PART 元素都是强制性的。通常您会复制现有模板并更改相关部分,您可以通过ComboBox.Template属性设置模板。

    如果您只想设置样式,而不是显着更改任何内容,您也可以为弹出窗口使用隐式样式。

    可以在 MSDN 上找到默认模板:

    WPF“默认 WPF 主题。” 链接)
    Silverlight(各种子页面)

    【讨论】:

    • 你能举个例子吗?这将非常有帮助。就像我说的那样,我不确定如何完成这项工作。谢谢
    • 嗯,第一种方法是个坏主意,因为部件不一定是强制性的。您在问题中发布了一些代码,它来自哪里?因为如果它来自默认模板,只需复制所有模板并将其设置为ComboBox.Template,如果您想将其应用于多个组合框,可能在Style.Setter 中。只需编辑您想要与众不同的部分。 (如果您不知道从哪里获取默认模板,我会在我的答案中添加一些链接。)
    【解决方案2】:

    在 XamlpadX 中,您可以单击样式按钮并选择组合框 - 组合框的模板已显示 - 将其复制到您的项目和实验中。

    http://blogs.msdn.com/b/llobo/archive/2008/08/25/xamlpadx-4-0.aspx

    您也可以在这里查看 controlstyle:

    http://msdn.microsoft.com/en-us/library/ms752094.aspx

    此处还有 controltemplates 示例:

    http://archive.msdn.microsoft.com/wpfsamples

    【讨论】:

      猜你喜欢
      • 2012-04-17
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多