9

CustomControl在 Window 的基础上做了一个新的Control
当我使用我的控件时,它不会出现在设计器模式中,而是仍然使用默认的窗口样式。
如何强制设计器显示我的窗口样式而不是默认样式?

我的 MainWindow.xaml:

<CustomWindow:MetroWindow x:Class="Testz.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:CustomWindow="clr-namespace:MetroWindow;assembly=MetroWindow"
        Title="MainWindow" Height="350" Width="525" BorderBrush="Red">
    <Grid>

    </Grid>
</CustomWindow:MetroWindow>

链接到我的整个项目 - 也许你会需要它

它在设计器中的外观以及它的真实外观:

在此处输入图像描述

4

3 回答 3

6

我想我理解你想要完成的事情。

问题是 Visual Studio 设计器找不到资源,因为它在库中。您需要做的是在您的应用程序上创建一个指向它的 ResourceDictionary,以便能够看到设计器时间模板。

<Application x:Class="DemoMetroWindow.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:MetroWindow"
             StartupUri="DemoWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:/MetroWindow;component/Themes/Generic.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

您可以从下面的链接中了解更多信息。

OnApplyTemplate() 永远不会被调用

WPF 在设计时获取类型?

http://blogs.msdn.com/b/jgalasyn/archive/2007/10/29/troubleshooting-wpf-designer-load-failures.aspx

http://blogs.msdn.com/b/jnak/archive/2007/11/08/code-behind-and-the-wpf-designer.aspx

于 2013-10-23T19:30:43.197 回答
0

你用的是 Mahapps Metro,对吧?

您可以使用它提供的样式。 用 Metro 设计窗户

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colours.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>

您可以通过将 Blue.xaml 的 Resource 字典更改为其他颜色来更改窗口的颜色,只需检查一下即可。

于 2013-10-23T19:39:00.700 回答
0

当 App.xaml 中的资源引用正常时,您应该重新启动 Visual Studio。在大多数情况下,主题会正确显示。

问候

于 2016-03-22T10:59:06.063 回答