我正在使用.net 4.5.2 我不清楚为什么我的项目继续说资源缺失。我在一个文件夹中调整了我的mainWindow.xaml并重新安装了应用程序以定位它的位置。真正奇怪的是它在visual studio中正确显示,但是当我尝试编译它时,错误地说项目中不存在'themes'命名空间。
严重级代码说明项目文件行错误CS0234类型或 名称空间名称“主题”在名称空间中不存在 'WpfApplication1'(你错过了一个程序集吗? 参考?)WpfApplication1 C:\ Users \ jmartini \ Projects \ wpf_Styling_4.5.2 \ WpfApplication1 \ WpfApplication1 \ obj \ Debug \ View \ MainWindow.g.i.cs 33
这是我的代码......
MainWindow.xaml
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication1"
mc:Ignorable="d"
Title="MainWindow" Height="200" Width="250"
WindowStartupLocation="CenterScreen">
<DockPanel>
<Button Content="Push It!" Width="70" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</DockPanel>
</Window>
JMStyles.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1.Themes">
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Red" />
<Setter Property="Foreground" Value="White" />
<Setter Property="FontSize" Value="15" />
<Setter Property="SnapsToDevicePixels" Value="True" />
</Style>
</ResourceDictionary>
的App.xaml
<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
StartupUri="View/MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Themes/JMStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
使其正常运行的解决方案...... 我从样式页面中删除了这一行:
xmlns:local="clr-namespace:WpfApplication1.Themes"
原始
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Red" />
<Setter Property="Foreground" Value="White" />
<Setter Property="FontSize" Value="15" />
<Setter Property="SnapsToDevicePixels" Value="True" />
</Style>
</ResourceDictionary>
答案 0 :(得分:0)
Microsoft.Windows.Themes可在主题特定的PresentationFramework程序集中找到。您需要根据XAML中引用的引用添加对以下某个引用:
PresentationFramework.Aero.dll
PresentationFramework.AeroLite.dll
PresentationFramework.Classic.dll
PresentationFramework.Luna.dll
PresentationFramework.Royale.dll
答案 1 :(得分:0)
我删除了这行代码
print u'\xd6'
来自下面的样式页面文件内容......
xmlns:local="clr-namespace:WpfApplication1.Themes"
答案 2 :(得分:0)
由于某些原因,Visual Studio无法识别仅包含资源字典文件的文件夹的命名空间。如果在该文件夹中添加另一个文件(例如用户控件),则会注意到名称空间将被识别。解决方案是删除 “本地”名称空间:
xmlns:local="clr-namespace:WpfApplication1.Themes
因为我们将用
提及资源<ResourceDictionary Source="Themes/...
不需要名称空间,不同之处在于,在创建用户控件时,确实需要在使用它们的文件代码中添加名称空间