2012-01-28 1 views
19

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> 

+1

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

Répondre

74

XamlParseException est une exception commune lancée en WPF. Malheureusement, ce n'est pas très utile.

Pour vous aider à identifier la véritable erreur, vous pouvez activer le rapport d'exception beaucoup plus tôt dans Visual Studio. La combinaison de touches par défaut est Ctrl + Alt + E. À partir de là, cochez toutes les cases.

Maintenant l'exception qui est levée dans votre code sera mise en surbrillance dans le débogueur.

+3

Trié. Merci. Le constructeur de fenêtre lançait une exception ArrayIndexOutOfBounds. Cela n'avait rien à voir avec cette ligne. Vraiment énervant. – Luke

+1

merci, vraiment aidé! – mbdavis

+0

merci, c'était vraiment utile ...! –

1

que xaml semble ok. il ne devrait pas y avoir de problème avec ça. Je pense que vous essayez d'obtenir des données. essayez-vous d'obtenir un message avec votre application? si c'est le cas, la taille du message par défaut est 65536 octets. augmentez ce nombre dans votre app.config. également ouvrir les fenêtres de sortie lors de l'exécution de votre programme et vérifier s'il existe des erreurs de liaison.

3

Essayez celui de la référence

"Ur nécessaire dll" -> Propriétés-> copie à local-> true (changer de faux)

sauver & solution propre & reconstruire ensuite. Je pense que ça va marcher (travaillé pour moi).

0

J'ai eu cette erreur et la modification des rapports d'exception ne semble pas aider

j'ai remarqué que je voulais appeler:

var processClass = new ManagementClass(@"\server.domain1.co.uk\root\cimv2:Win32_Process"); 

\server devrait être \\server

La modification de ce fixe la problème, mais il est assez ennuyeux d'avoir un message d'erreur qui ne vous dit rien sur votre erreur.

J'ai effectivement remarqué cette erreur dans quelques endroits lorsqu'une chaîne n'a pas été correctement formée dans wpf, ce qui pourrait être un bon point de départ.