2009-03-07 72 views
2

如何访问WPF的内置风格/模板? 重用内置的WPF风格

例如我试图将NavigationWindow的chrome移动到窗口的底部。我见过微软的NavigationWindow template example ,但它非常冗长,并且不会重复使用默认导航栏。

我也试过看着Snoop里面的树。所有的chrome都包含在名为“NavChrome”的网格元素中,但是我可以找到任何对它的引用。似乎没有任何与之匹配的“PART_xyz”。

对于CTP,有些人提到使用“PFThemeNavigationWindowNavigationButtonForwardButtonStyle”等等,对于按钮样式,但是这似乎不再适用。

那么,是否可以访问这些内置的样式?在其他地方重复使用它们会很好!

谢谢!


编辑: saldoukhov 的答案是非常有帮助的,但有没有办法做到这一点,而无需复制所有的XAML?对我来说,这看起来不像是一种非常的 DRY

回答

5

我通常在Expression Blend中做到这一点。选择控制 - >右键单击 - >编辑控制部件(模板) - >编辑副本...

然后它取决于你想要做什么。如果你幸运的话,你正在编辑的模板包含引用key'ed资源的变化,你可以得到想要的效果,那么你可以用这个键创建自己的资源,他们会“覆盖”模板中的资源,在这种情况下,您无需携带完整的模板。但更多的时候,你需要改变模板的一些东西,所以你只需将它提取到自己的资源中并开始运行。

3

不是您的问题的答案,但有一点提示: 除了saldoukhov的回答,如果您没有Expression Blend,还可以使用XamlPadX( http://blogs.msdn.com/llobo )访问内置样式。