app.xaml 资源将无法使用。 dot.net 核心内容?

app.xaml resources won't work. dot.net core stuff?

我在 app.xaml 文件中定义了以下资源,它们运行良好:

<Application.Resources>
    <Style TargetType="Button" x:Key="homeButtom">
        <Setter Property="Margin" Value="5" />
        <Setter Property="Padding" Value="4" />
        <Setter Property="Width" Value="110" />
        <Setter Property="Background" Value="CadetBlue" />
        <Setter Property="Foreground" Value="White" />
        <Setter Property="FontSize" Value="14" />
    </Style>
</Application.Resources>

然后,我将 entity framework 添加到解决方案中,并且按照建议,O 从 header 中删除了 "StartupUri="MainWindow.xaml" 并在代码中插入了调用落后:

protected override async void OnStartup(StartupEventArgs e)
    {
        await host.StartAsync();

        var mainWindow = host.Services.GetRequiredService<MainWindow>();
        mainWindow.Show();

        base.OnStartup(e);
    }

除非在需要的页面上设置,否则资源将无法使用。

补充一下,我想这就是原因。事实是我的资源只能从 app.xaml...

我可以确认您提供资源的方式在 dot net core 中不起作用。但是,我发现如果将资源放在 ResourceDictionary 中,它将起作用。

App.xaml.cs:

        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/MyResourceDictionary.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>

MyResourceDictionary.xaml:

    <Style TargetType="Button" x:Key="homeButtom">
        <Setter Property="Margin" Value="5" />
        <Setter Property="Padding" Value="4" />
        <Setter Property="Width" Value="110" />
        <Setter Property="Background" Value="CadetBlue" />
        <Setter Property="Foreground" Value="White" />
        <Setter Property="FontSize" Value="14" />
    </Style>