微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在更改架构时我的 WPF 组件样式会发生变化?

如何解决为什么在更改架构时我的 WPF 组件样式会发生变化?

我是 WPF 的新手,当我选择 x86/x64 或 Any cpu 时,我无法弄清楚为什么我的日历样式不一样。

这一切都源于在我的 Windows 应用程序 (https://www.charlespetzold.com/blog/2009/10/Adapting-the-Calendar-Control-for-Week-Numbers.html) 中实现由 Charles Petzold 开发的日历组件的想法。我通过 UserControl 调用此日历,目前它单独存在于网格中。

<UserControl
    x:Class="NSxxx.Widgets.CalendarWeekNumber"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:src="clr-namespace:NSxxx.Widgets">

<UserControl.Resources>
    <!--CalendarItem-->
    <Style  x:Key="calItemStyle" 
            targettype="CalendarItem">
        <Setter Property="Margin" Value="0,3,3" />
 <Setter Property="Template">
 ......
 </Setter>
    </Style>
</UserControl.Resources>

<Grid>
    <Grid.RowDeFinitions>
        <RowDeFinition />
        <RowDeFinition />
    </Grid.RowDeFinitions>
    <Calendar CalendarItemStyle="{StaticResource calItemStyle}" Grid.Row="0" />
    <Label Content="lbContent" Grid.Row="1"/>
</Grid>

在这个应用程序中,我将 materialdesign 包用于我制作的其他页面

到目前为止,我设法使 Charles Petzold 的 XAML 适应了较新版本的 Visual Studio(即 2019),但是当我选择特定的架构时,我最终得到了 2 种不同的风格:

  • 对于 x86 - materialdesign 日历
  • 对于 x64 - Petzold 日历(不打印周数,但这是另一个问题)
  • 对于任何 cpu - 材料设计日历

当我删除对 MaterialDesignThemes.Wpf 的引用时,它在 X86 中完美运行 - 并且仍然没有在 X64 中显示周数。

有什么想法可以解决这个问题(除了完全摆脱 materialdesign 包 - 暂时)?

谢谢

X64 calendar vs X86 calendar

@感谢您对旅馆的关注! 这是 App.xaml

<Application x:Class="NSxxx.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:local="clr-namespace:NSxxx"
         StartupUri="NSxxxWindow.xaml">
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
            <ResourceDictionary Source="pack://application:,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
            <ResourceDictionary Source="pack://application:,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.Blue.xaml" />
            <ResourceDictionary Source="pack://application:,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Indigo.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

CSPROJ 是 SLN 吗? 我试过玩配置和架构,这可能解释了混乱:

Microsoft Visual Studio Solution File,Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31105.61
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Login","Login\Login.csproj","{8927619B-8A87-4050-B874-E0B0B8C2ADF7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NSxxx","..\NSxxx\NSxxx\NSxxx.csproj","{8EC17DF2-B06C-43B3-88B7-838C92B9AB36}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SecurityFunctions","SecurityFunctions\SecurityFunctions.csproj","{F3DA1191-32A4-429F-AC26-67F77CB90F77}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPF.FlipView","..\FlipView\WPF.FlipView\WPF.FlipView.csproj","{B6B0CDA6-CBE0-4D18-A213-C0F5D8100DD1}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any cpu = Debug|Any cpu
        Debug|x64 = Debug|x64
        Debug|x86 = Debug|x86
        Release|Any cpu = Release|Any cpu
        Release|x64 = Release|x64
        Release|x86 = Release|x86
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {8927619B-8A87-4050-B874-E0B0B8C2ADF7}.Debug|Any cpu.ActiveCfg = Debug|Any cpu
        {8927619B-8A87-4050-B874-E0B0B8C2ADF7}.Debug|Any cpu.Build.0 = Debug|Any cpu
        {8927619B-8A87-4050-B874-E0B0B8C2ADF7}.Debug|x64.ActiveCfg = Debug|x64
        {8927619B-8A87-4050-B874-E0B0B8C2ADF7}.Debug|x64.Build.0 = Debug|x64
        {8927619B-8A87-4050-B874-E0B0B8C2ADF7}.Debug|x86.ActiveCfg = Debug|x86
        {8927619B-8A87-4050-B874-E0B0B8C2ADF7}.Debug|x86.Build.0 = Debug|x86
        {8927619B-8A87-4050-B874-E0B0B8C2ADF7}.Release|Any cpu.ActiveCfg = Release|Any cpu
        {8927619B-8A87-4050-B874-E0B0B8C2ADF7}.Release|Any cpu.Build.0 = Release|Any cpu
        {8927619B-8A87-4050-B874-E0B0B8C2ADF7}.Release|x64.ActiveCfg = Release|x64
        {8927619B-8A87-4050-B874-E0B0B8C2ADF7}.Release|x64.Build.0 = Release|x64
        {8927619B-8A87-4050-B874-E0B0B8C2ADF7}.Release|x86.ActiveCfg = Release|x86
        {8927619B-8A87-4050-B874-E0B0B8C2ADF7}.Release|x86.Build.0 = Release|x86
        {8EC17DF2-B06C-43B3-88B7-838C92B9AB36}.Debug|Any cpu.ActiveCfg = Debug|Any cpu
        {8EC17DF2-B06C-43B3-88B7-838C92B9AB36}.Debug|Any cpu.Build.0 = Debug|Any cpu
        {8EC17DF2-B06C-43B3-88B7-838C92B9AB36}.Debug|x64.ActiveCfg = Debug|x64
        {8EC17DF2-B06C-43B3-88B7-838C92B9AB36}.Debug|x64.Build.0 = Debug|x64
        {8EC17DF2-B06C-43B3-88B7-838C92B9AB36}.Debug|x86.ActiveCfg = Debug|x86
        {8EC17DF2-B06C-43B3-88B7-838C92B9AB36}.Debug|x86.Build.0 = Debug|x86
        {8EC17DF2-B06C-43B3-88B7-838C92B9AB36}.Release|Any cpu.ActiveCfg = Release|Any cpu
        {8EC17DF2-B06C-43B3-88B7-838C92B9AB36}.Release|Any cpu.Build.0 = Release|Any cpu
        {8EC17DF2-B06C-43B3-88B7-838C92B9AB36}.Release|x64.ActiveCfg = Release|x64
        {8EC17DF2-B06C-43B3-88B7-838C92B9AB36}.Release|x64.Build.0 = Release|x64
        {8EC17DF2-B06C-43B3-88B7-838C92B9AB36}.Release|x86.ActiveCfg = Release|x86
        {8EC17DF2-B06C-43B3-88B7-838C92B9AB36}.Release|x86.Build.0 = Release|x86
        {F3DA1191-32A4-429F-AC26-67F77CB90F77}.Debug|Any cpu.ActiveCfg = Debug|Any cpu
        {F3DA1191-32A4-429F-AC26-67F77CB90F77}.Debug|Any cpu.Build.0 = Debug|Any cpu
        {F3DA1191-32A4-429F-AC26-67F77CB90F77}.Debug|x64.ActiveCfg = Debug|x64
        {F3DA1191-32A4-429F-AC26-67F77CB90F77}.Debug|x64.Build.0 = Debug|x64
        {F3DA1191-32A4-429F-AC26-67F77CB90F77}.Debug|x86.ActiveCfg = Debug|x86
        {F3DA1191-32A4-429F-AC26-67F77CB90F77}.Debug|x86.Build.0 = Debug|x86
        {F3DA1191-32A4-429F-AC26-67F77CB90F77}.Release|Any cpu.ActiveCfg = Release|Any cpu
        {F3DA1191-32A4-429F-AC26-67F77CB90F77}.Release|Any cpu.Build.0 = Release|Any cpu
        {F3DA1191-32A4-429F-AC26-67F77CB90F77}.Release|x64.ActiveCfg = Release|x64
        {F3DA1191-32A4-429F-AC26-67F77CB90F77}.Release|x64.Build.0 = Release|x64
        {F3DA1191-32A4-429F-AC26-67F77CB90F77}.Release|x86.ActiveCfg = Release|x86
        {F3DA1191-32A4-429F-AC26-67F77CB90F77}.Release|x86.Build.0 = Release|x86
        {B6B0CDA6-CBE0-4D18-A213-C0F5D8100DD1}.Debug|Any cpu.ActiveCfg = Debug|Any cpu
        {B6B0CDA6-CBE0-4D18-A213-C0F5D8100DD1}.Debug|Any cpu.Build.0 = Debug|Any cpu
        {B6B0CDA6-CBE0-4D18-A213-C0F5D8100DD1}.Debug|x64.ActiveCfg = Debug|Any cpu
        {B6B0CDA6-CBE0-4D18-A213-C0F5D8100DD1}.Debug|x64.Build.0 = Debug|Any cpu
        {B6B0CDA6-CBE0-4D18-A213-C0F5D8100DD1}.Debug|x86.ActiveCfg = Debug|Any cpu
        {B6B0CDA6-CBE0-4D18-A213-C0F5D8100DD1}.Debug|x86.Build.0 = Debug|Any cpu
        {B6B0CDA6-CBE0-4D18-A213-C0F5D8100DD1}.Release|Any cpu.ActiveCfg = Release|Any cpu
        {B6B0CDA6-CBE0-4D18-A213-C0F5D8100DD1}.Release|Any cpu.Build.0 = Release|Any cpu
        {B6B0CDA6-CBE0-4D18-A213-C0F5D8100DD1}.Release|x64.ActiveCfg = Release|Any cpu
        {B6B0CDA6-CBE0-4D18-A213-C0F5D8100DD1}.Release|x64.Build.0 = Release|Any cpu
        {B6B0CDA6-CBE0-4D18-A213-C0F5D8100DD1}.Release|x86.ActiveCfg = Release|Any cpu
        {B6B0CDA6-CBE0-4D18-A213-C0F5D8100DD1}.Release|x86.Build.0 = Release|Any cpu
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {C28D41EC-44B2-4761-9AE5-32AF36C7AC03}
    EndGlobalSection
EndGlobal

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。