.net x:XAML样式属性中的静态导致“System.Windows.Markup”上的类型引用不明确
在XAML表单中添加一个特殊的样式就这么简单,我去掉了所有不必要的标记.net x:XAML样式属性中的静态导致“System.Windows.Markup”上的类型引用不明确,.net,wpf,xaml,.net,Wpf,Xaml,在XAML表单中添加一个特殊的样式就这么简单,我去掉了所有不必要的标记 <Window x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="MainWin" Title="Main" Height="228" Width=
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="MainWin" Title="Main" Height="228" Width="525" WindowStyle="None">
<Grid>
<Button x:Name="ButtonClose" Content="r" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" HorizontalAlignment="Left" Margin="491,10,0,0" VerticalAlignment="Top" Width="24" Click="ButtonClose_Click" IsCancel="True" BorderThickness="0" Background="#00DDDDDD" Foreground="#FFEEEEEE" FontFamily="Marlett" FontSize="16" ToolTip="Close (Esc)"/>
</Grid>
</Window>
正在抛出非阻塞错误:
不明确的类型引用。名为“StaticExtension”的类型至少出现在两个名称空间“System.Windows.Markup”和“System.Windows.Markup”中
问题出在属性Style={StaticResource{x:Static ToolBar.ButtonStyleKey}中。如果删除该属性,则错误消失。问题也没有了,我将项目切换到.NET4
我知道存在名称空间冲突,如中所示。但是如何修改XAML来防止这种情况呢
所有导致错误的代码都是由designer中的工作创建的,而不是手工创建的。
.NET3.5很重要
VS 2012更新4
我并没有像我在一些SO答案中发现的那样使用ReSharper,它已经知道这方面的缺陷
类似的东西,但VS 2012更新2
复制步骤:创建新项目•在向导中选择.NET 3.5,然后WPF应用程序•设计器打开•粘贴XAML•全部重建•显示错误
最后,我的结论是,这是配置中出现的一个特定问题 VisualStudio 2012+.NET 3.5+WPF 这不是阻塞问题,所以我可以接受 __
如果有更好的asnwer,请随意发布,我会将其标记为已接受的答案,而不是此答案。上述代码不会重现上述错误。@pushpraj-对我来说确实如此。我在问题的底部添加了复制步骤。我现在已经成功地测试了它们。您在哪个VS和.NET版本中尝试过这个功能?我将VS2013与.NET 4.5一起使用,也许这就是原因。如果我能在某处找到VS2012,让我试试。@pushpraj-首先,只需在.NET 3.5中启动项目即可。它可以在向导中选择,也许您也会在VS2013中看到问题,而不是在VS2013中重复出现。