WPF NavigationWindow中的OverrideDefaultStyle?

时间:2009-08-23 09:40:37

标签: .net wpf

在WPF中创建导航应用程序时,如何为窗口创建自定义样式和布局?这可能吗? 比如说,在窗口侧面添加一个面板,其中包含指向应用程序中所有页面的链接。 当我尝试向NavigationWindow添加控件/内容时,我收到以下消息:

“类型'NavigationWindow'不支持直接内容。”

由于

2 个答案:

答案 0 :(得分:1)

我不确定我是否理解从普通窗口开始,添加框架然后启用ShowsNavigationUI属性的建议。这基本上就是NavigationWindow;你也可以从那里开始。显示在框架中的前进/后退按钮将显示为内容窗口的一部分。是的,它会起作用,但它也会显得很奇怪,因为大多数用户都希望看到框架左上角的导航控件。

有三种选择。第一个是重新设置NavigationWindow的皮肤。您可以在线找到NavigationWindow的原始WPF模板。如果您遇到问题,我可以为您找到一个链接。您可以将这些作为起点,并将自己的控件添加到框架中。创建自己的NavigationWindow模板最重要的部分是将ContentPresenter包含为名称为“PART_WinNavCP”的部分。

第二个选项是使用Expression Blend为您提取NavigationWindow的元素。但同样,一旦你进行了逆向工程,你就需要组装所有零件。

第三个选项是我把它放在一起的选项。它是由我创建的,因为我遇到了你运行(正在运行)的相同限制。如果你想专注于创建一个真正的导航风格的界面而不试图重新整理整个控件,请看看:

http://www.teraque.com/products/explorer-chrome-suite/

我提供了一个免费的演示。把它拿出去旋转一下。即使您不想购买该产品,如果您正在努力实现这一目标,我也可以给您指点。

此致

唐纳德罗伊艾瑞

donald.roy.airey@teraque.com

答案 1 :(得分:0)

要在导航样式的应用程序中自定义主机窗口,只需使用普通窗口使自己成为普通的WPF应用程序,然后将Frame控件拖放到该窗口中。将Frame的Source设置为您希望应用程序开始的页面,它的行为就像您的标准导航应用程序一样,除了您可以使用其他控件等自定义窗口。