x:XAML Style属性中的静态导致'System.Windows.Markup'上的模糊类型引用

时间:2014-09-27 18:05:00

标签: .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="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}}"中。如果我删除该属性,则错误消失。问题还没有,我将项目切换到.NET 4。

我理解similar question中显示的命名空间存在冲突。但是如何修改XAML以防止这种情况呢?

  • 导致错误的所有代码都是由设计师的工作创建的,而不是手工创建的。
  • .NET 3.5(重要)
  • VS 2012 Update 4
  • 使用ReSharper(正如我在一些SO答案中发现的,它已知道有关此问题的缺陷)
  • 类似was reported to Microsoft,但VS 2012 更新2
  • 重现步骤:创建新项目•在向导中选择.NET 3.5,然后选择“WPF Application”•设计器打开•粘贴XAML•重建所有•显示错误

1 个答案:

答案 0 :(得分:0)

最后,我得出结论,这是配置中发生的特定问题 VisualStudio 2012 + .NET 3.5 + WPF

这不是阻塞问题,所以我可以忍受它。

__

(如果有些人更好,请随意发布,我会将其标记为已接受的答案而不是此答案。)