WPF:主应用程序不是App.Xaml时,应用程序样式不适用

时间:2019-12-13 12:02:18

标签: c# wpf xaml wpf-style app.xaml

我有一个WPF应用程序,该应用程序需要一个单独的main方法(由于Mono实例)。

Google表示,要使其正常工作,我需要将App.Xaml类型从“ ApplicationDefinition ”更改为“ Page ”。

但是当我这样做时,<Application.Resources>中定义的样式不适用于MainWindow。这是我在App.Xaml文件中编写的基本代码:

<Application x:Class="EasySave_v2.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:EasySave_v2"             >
    <Application.Resources>
        <ResourceDictionary>
            <Style TargetType="Button">
                <Setter Property="Background" Value="#FF1D69AB"></Setter>
                <Setter Property="BorderBrush" Value="{x:Null}"></Setter>
                <Setter Property="Foreground" Value="White"></Setter>
            </Style>
        </ResourceDictionary>
    </Application.Resources>
</Application>

在CS文件中:

    public partial class App : Application
    {
        // Single Instance
        public void Activate()
        {
            if (this.MainWindow.WindowState == WindowState.Minimized)
                this.MainWindow.WindowState = WindowState.Normal;

            this.MainWindow.Activate();
        }

        protected override void OnStartup(System.Windows.StartupEventArgs e)
        {
            base.OnStartup(e);

            MainWindow window = new MainWindow();
            window.Show();
        }
    }

经过一些故障排除后,我发现如果缺少 StartupURI 属性,则可以重现该问题,但是由于App.Xaml现在是“页面”。

所以我的问题是: 当主要不是App.Xaml时,我可以通过什么方式轻松地将隐式样式应用于整个应用程序?


重要提示: 我在这里只问隐式样式,因为很奇怪,我刚刚发现带有x:Key的显式样式很好用,但是我仍然需要知道是否有办法使隐式样式起作用。

编辑: 好吧,现在,显式样式不再起作用。我不明白

我不需要睡眠,我需要答案。

0 个答案:

没有答案