Ambiguous type reference. A type named `VisualState` occurs in at least two namespaces
What is the following error?
Ambiguous type reference. A type named 'VisualState' occurs in at least two namespaces, 'System.Windows' and 'System.Windows'. Consider adjusting the assembly XmlnsDefinition attributes.
UserControl:
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://s开发者_JS百科chemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="ButtonWPF.MyButtonAdd"
x:Name="AddButton"
d:DesignWidth="84" d:DesignHeight="87">
<UserControl.Resources>
<Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid x:Name="grid" RenderTransformOrigin="0.5,0.5">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform/>
.............
<Trigger Property="IsDefaulted" Value="True"/>
<Trigger Property="IsMouseOver" Value="True"/>
<Trigger Property="IsPressed" Value="True"/>
<Trigger Property="IsEnabled" Value="False"/>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid x:Name="LayoutRoot"
Height="79"
Width="72">
<Button Content=""
HorizontalAlignment="Left"
Height="61"
Style="{DynamicResource ButtonStyle1}"
VerticalAlignment="Top"
Width="57"/>
</Grid>
</UserControl>
MainWindow:
<Window x:Class="ButtonWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"
xmlns:my="clr-namespace:ButtonWPF"
Title="winGroup"
Height="637"
Width="638"
FontSize="15"
FontWeight="Bold">
<Grid>
<my:MyButtonAdd HorizontalAlignment="Left"
Margin="540,519,0,0"
x:Name="btnAdd"
VerticalAlignment="Top"
IsEnabled="True"/>
</Grid>
</Window>
This error(most of the time warning) will occur when using two or more references which contains same namespace and classes. in your case you are using VisualState which is part of PresentationFramework assembly and you might have added another assembly which contains same "VisualState" object with the same namespace "System.Windows" .
you can resolve the error using following imports in your xaml
xmlns:vsm ="clr-namespace:System.Windows;assembly=PresentationFramework"
instead of using
<VisualState x:Name="Pressed">
<Storyboard>
</Storyboard>
</VisualState>
Use:
<vsm:VisualState x:Name="Pressed">
<Storyboard>
</Storyboard>
</vsm:VisualState>
精彩评论