首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Aero和Aero2中都存在相同的类型名称。

在Aero和Aero2中都存在相同的类型名称。
EN

Stack Overflow用户
提问于 2022-05-06 08:43:43
回答 1查看 156关注 0票数 0

我正在使用优秀的升级辅助工具从.net框架4.7.2升级到.net6。有时我会犯这样的错误:

错误CS0433类型'SystemDropShadowChrome‘在'PresentationFramework.Aero,Version=6.0.2.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35’和'PresentationFramework.Aero2,Version=6.0.2.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35‘中都存在

这种情况总是发生在..xaml文件中,并且总是发生在Aero和Aero2包中。这些都由Microsoft.WindowsDesktop.App.WPF (C:\Program框架)引用,升级助手在升级时将其添加到我的项目中。

当然,我不能从我的项目中删除Microsoft.WindowsDesktop.App.WPF框架,但是阅读关于错误CS0433的文章会提示我,应该有一种在包之间进行选择的方法。但我不知道怎么..。

有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-10 11:05:07

你能给我看看你用过SystemDropShadowChrome的一些示例代码吗?

因为通常名称空间在xaml-file:xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero2"中声明如下:

我也面临着同样的问题(但我在代码隐藏中使用了SystemDropShadowChrome ),解决方案是这样的:https://github.com/dotnet/wpf/issues/765#issuecomment-555163388

您需要修改.csproj-file,如下所示:

添加此属性组并选择要选择的主题(例如,Aero2) )

代码语言:javascript
复制
<PropertyGroup>
    <ReferenceWpfAeroTheme>false</ReferenceWpfAeroTheme>
    <ReferenceWpfAero2Theme>true</ReferenceWpfAero2Theme>
    <ReferenceWpfAeroLiteTheme>false</ReferenceWpfAeroLiteTheme>
    <ReferenceWpfClassicTheme>false</ReferenceWpfClassicTheme>
    <ReferenceWpfLunaTheme>false</ReferenceWpfLunaTheme>
    <ReferenceWpfRoyaleTheme>false</ReferenceWpfRoyaleTheme>
</PropertyGroup>

  1. 将此目标添加到文件的末尾:

代码语言:javascript
复制
<Target Name="SelectWpfThemeAssembly" AfterTargets="ResolveAssemblyReferences" Condition="'$(ReferenceWpfAeroTheme)' == 'true'     Or&#xD;&#xA;                     '$(ReferenceWpfAero2Theme)' == 'true'    Or&#xD;&#xA;                     '$(ReferenceWpfAeroLiteTheme)' == 'true' Or&#xD;&#xA;                     '$(ReferenceWpfClassicTheme)' == 'true'  Or &#xD;&#xA;                     '$(ReferenceWpfLunaTheme)' == 'true'     Or&#xD;&#xA;                     '$(ReferenceWpfRoyaleTheme)' == 'true'">
        <ItemGroup>
            <_WpfThemeAssemblies Include="@(ReferencePath)" Condition="'%(ReferencePath.NuGetPackageId)'=='Microsoft.WindowsDesktop.App.Ref'  And &#xD;&#xA;                                   '%(ReferencePath.FileName)'=='PresentationFramework.Aero'">
                <Aliases Condition="'$(WpfAeroThemeAliases)'!=''">$(WpfAeroThemeAliases)</Aliases>
            </_WpfThemeAssemblies>

            <_WpfThemeAssemblies Include="@(ReferencePath)" Condition="'%(ReferencePath.NuGetPackageId)'=='Microsoft.WindowsDesktop.App.Ref'  And &#xD;&#xA;                                   '%(ReferencePath.FileName)'=='PresentationFramework.Aero2'">
                <Aliases Condition="'$(WpfAero2ThemeAliases)'!=''">$(WpfAero2ThemeAliases)</Aliases>
            </_WpfThemeAssemblies>

            <_WpfThemeAssemblies Include="@(ReferencePath)" Condition="'%(ReferencePath.NuGetPackageId)'=='Microsoft.WindowsDesktop.App.Ref'  And &#xD;&#xA;                                   '%(ReferencePath.FileName)'=='PresentationFramework.AeroLite'">
                <Aliases Condition="'$(WpfAeroLiteThemeAliases)'!=''">$(WpfAeroLiteThemeAliases)</Aliases>
            </_WpfThemeAssemblies>

            <_WpfThemeAssemblies Include="@(ReferencePath)" Condition="'%(ReferencePath.NuGetPackageId)'=='Microsoft.WindowsDesktop.App.Ref'  And &#xD;&#xA;                                   '%(ReferencePath.FileName)'=='PresentationFramework.Classic'">
                <Aliases Condition="'$(WpfClassicThemeAliases)'!=''">$(WpfClassicThemeAliases)</Aliases>
            </_WpfThemeAssemblies>

            <_WpfThemeAssemblies Include="@(ReferencePath)" Condition="'%(ReferencePath.NuGetPackageId)'=='Microsoft.WindowsDesktop.App.Ref'  And &#xD;&#xA;                                   '%(ReferencePath.FileName)'=='PresentationFramework.Luna'">
                <Aliases Condition="'$(WpfLunaThemeAliases)'!=''">$(WpfLunaThemeAliases)</Aliases>
            </_WpfThemeAssemblies>


            <_WpfThemeAssemblies Include="@(ReferencePath)" Condition="'%(ReferencePath.NuGetPackageId)'=='Microsoft.WindowsDesktop.App.Ref'  And &#xD;&#xA;                                   '%(ReferencePath.FileName)'=='PresentationFramework.Royale'">
                <Aliases Condition="'$(WpfRoyaleThemeAliases)'!=''">$(WpfRoyaleThemeAliases)</Aliases>
            </_WpfThemeAssemblies>


            <ReferencePath Remove="@(_WpfThemeAssemblies)" />

            <ReferencePath Include="@(_WpfThemeAssemblies)" Condition="('%(_WpfThemeAssemblies.FileName)'=='PresentationFramework.Aero' And '$(ReferenceWpfAeroTheme)'=='true')          Or &#xD;&#xA;                                ('%(_WpfThemeAssemblies.FileName)'=='PresentationFramework.Aero2' And '$(ReferenceWpfAero2Theme)'=='true')        Or &#xD;&#xA;                                ('%(_WpfThemeAssemblies.FileName)'=='PresentationFramework.AeroLite' And '$(ReferenceWpfAeroLiteTheme)'=='true')  Or &#xD;&#xA;                                ('%(_WpfThemeAssemblies.FileName)'=='PresentationFramework.Classic' And '$(ReferenceWpfClassicTheme)'=='true')    Or &#xD;&#xA;                                ('%(_WpfThemeAssemblies.FileName)'=='PresentationFramework.Luna' And '$(ReferenceWpfLunaTheme)'=='true')          Or&#xD;&#xA;                                ('%(_WpfThemeAssemblies.FileName)'=='PresentationFramework.Royale' And '$(ReferenceWpfRoyaleTheme)'=='true')" />
        </ItemGroup>
    </Target>

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72138621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档