Je travaillais sur un projet WPF sur mon PC la nuit dernière, en utilisant VS 2010 Ultimate.XAML Parse Exception - xmlns: x = "http://schemas.microsoft.com/winfx/2006/xaml"
Je viens de l'ouvrir sur mon Netbook avec VS C# 2010 Express.
Lorsque je tente de l'exécuter, il me jette un XAML Parse Exception qui me dit que la ligne:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
est le problème. Je ne vois pas de problème, je n'ai jamais changé et il semble que ce soit ce qu'il devrait être.
L'erreur:
'The invocation of the constructor on type 'WpfApplication1.MainWindow' that matches the specified binding constraints threw an exception.' Line number '3' and line position '9'.
XAML complète:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Camera" Height="550" Width="826" Background="#ddd" ResizeMode="NoResize" WindowStyle="None" MouseLeftButtonDown="Window_MouseLeftButtonDown" BorderBrush="#FF8D8D8D" BorderThickness="2" >
<Window.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<ContentPresenter
Margin="{TemplateBinding Control.Padding}"
HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"
RecognizesAccessKey="True"
Content="{TemplateBinding ContentControl.Content}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid Width="830" Height="510">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="132" />
<ColumnDefinition Width="698*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="29" />
<RowDefinition Height="319" />
<RowDefinition Height="121" />
<RowDefinition Height="16" />
<RowDefinition Height="25*" />
</Grid.RowDefinitions>
<ComboBox Name="PortNames" Height="23" HorizontalAlignment="Left" VerticalAlignment="Top" Width="120" SelectionChanged="PortNames_SelectionChanged" Margin="12,6,0,0" />
<Ellipse Grid.Row="2" Height="120" HorizontalAlignment="Left" Name="ellipse1" StrokeThickness="6" VerticalAlignment="Top" Width="120" MouseLeftButtonDown="ellipse1_MouseLeftButtonDown" Margin="12,0,0,0">
<Ellipse.Fill>
<LinearGradientBrush EndPoint="1,1" StartPoint="0,0">
<GradientStop Color="#89FF0000" Offset="0" />
<GradientStop Color="Red" Offset="1" />
</LinearGradientBrush>
</Ellipse.Fill>
<Ellipse.Stroke>
<LinearGradientBrush EndPoint="1,1" StartPoint="0,0">
<GradientStop Color="#FFB10000" Offset="0" />
<GradientStop Color="#83B20707" Offset="0" />
<GradientStop Color="#F7B00000" Offset="1" />
</LinearGradientBrush>
</Ellipse.Stroke>
</Ellipse>
<Button Content="Sync" Height="23" HorizontalAlignment="Left" Margin="57,6,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" Grid.Row="1" />
<Rectangle Height="23" HorizontalAlignment="Left" Margin="12,6,0,0" Name="rectangle2" Stroke="Black" VerticalAlignment="Top" Fill="Red" Width="39" OpacityMask="#AA000000" Grid.Row="1" />
<ProgressBar Grid.Row="4" Height="19" HorizontalAlignment="Left" Name="progressBar1" VerticalAlignment="Top" Width="120" Margin="12,2,0,0" />
<Rectangle Grid.RowSpan="5" Grid.Column="1" Height="500" Name="rectangle1" Stroke="#aaa" Width="660" Fill="#eee" Margin="12,5,26,5" />
<Button Grid.Column="1" Height="18" HorizontalAlignment="Left" Margin="630,-20,0,0" Name="image1" VerticalAlignment="Top" Width="40" Click="image1_Click"><Image Stretch="Fill" Source="/PhotoProgram;component/Images/Close.png" /></Button>
<Button Grid.Column="1" Height="18" HorizontalAlignment="Left" Margin="587,-20,0,0" Name="minimize" VerticalAlignment="Top" Width="40" Click="minimize_Click"><Image Stretch="Fill" Source="/PhotoProgram;component/Images/Minimize.png" /></Button>
</Grid>
Ceci est une erreur courante. Cependant, la source n'est pas toujours simple. Et parfois, cela n'a rien à voir avec le XAML lui-même. Un cas, j'ai eu ce que l'écriture d'un objet via filestream sur le disque après la sérialisation. Cela a fonctionné parfaitement dans Win7 et a jeté exactement cette exception dans WinXP.Essayez de placer les points d'arrêt dans votre code et essayez de déterminer quelle ligne spécifique provoque l'erreur. Et puis allez plus loin dans la pile d'appels. À votre santé. – Oybek