1

我刚刚注意到我的 xaml 编辑器看不到 App.xaml 中定义的样式。

<Application x:Class="MyApp.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="Windows\MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/Assets/Themes/ShinyBlue.xaml"/>
            </ResourceDictionary.MergedDictionaries>

            // this one gets a warning that's never used, though it is
            <LinearGradientBrush x:Key="backgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="{StaticResource NormalBrushGradient3}" Offset="0.1" />
                <GradientStop Color="{StaticResource NormalBrushGradient1}" Offset="0.4" />
            </LinearGradientBrush>

对这种样式的每次调用都带有下划线,并且设计师都没有加载任何样式(一切都是白色的)。当我运行该应用程序时,一切看起来都很好 - 正在加载样式。

最近我将入口点更改为我的应用程序:

public partial class App : Application
{
    [System.STAThreadAttribute()]
    public static int Main(string[] args)
    {
        var dirsToCreate = new[]
            {
                Settings.Default.PhotosDirectory
            };
        foreach (var dir in dirsToCreate)
        {
            if (!Directory.Exists(dir))
                Directory.CreateDirectory(dir);
        }

        App app = new App();
        app.InitializeComponent();
        app.Run();

        return 0;
    }

我怀疑,但不能确定这个更改的入口点可能与此有关(我将 MainWinow 的构建操作更改为“页面”)。

任何想法发生了什么以及如何解决这个问题?

4

1 回答 1

0
  1. 由于您更改了入口点,您是否将 app.xaml 中的“StartupUri”属性更改为要启动的新窗口?

  2. app.xaml 文件中的 x:Class 属性是什么,startupwindow.xaml 文件中的 x:Class 属性是什么?

  3. 您是否尝试过将样式引用为 DynamicResource 而不是 StaticResource?DynamicResource 不会在编译时加载您的样式,它会在运行时加载它们。编辑时您不会在“设计”窗口中看到应用的样式,但会在您运行应用程序时应用这些样式。这可能不是解决此问题的最佳方法,但我过去这样做只是为了克服一些愚蠢的小障碍。就个人而言,我从不使用设计器窗口,我只是用 XAML 编写我的 UI,所以这对我来说并不是一个真正的问题。

试试这些,让我知道它们是否适合你。

于 2013-02-15T17:13:27.680 回答