2012-01-28 9 views
19

Estaba trabajando en un proyecto WPF en mi PC anoche, utilizando VS 2010 Ultimate.XAML Parse Exception - xmlns: x = "http://schemas.microsoft.com/winfx/2006/xaml"

Acabo de abrirlo en mi Netbook con VS C# 2010 Express.

cuando intento ejecutarlo, que estoy lanzado una excepción XAML Analizar el que me dice que la línea:

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 

es el problema. No puedo ver un problema con él, nunca lo he cambiado y parece que es lo que debería ser.

El error:

'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 completo:

<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

Este es un error común. Sin embargo, la fuente no siempre es simple. Y a veces no tiene nada que ver con el XAML. En un caso tuve lo que escribir un objeto a través de filestream en el disco después de la serialización. Esto funcionó perfectamente en Win7 y arrojó exactamente esta excepción en WinXP.Trate de poner los puntos de interrupción en su código e intente descubrir qué línea específica causa el error. Y luego profundiza en la pila de llamadas. Aclamaciones. – Oybek

Respuesta

74

XAMLParseException es una excepción común tirado en WPF. Lamentablemente no es muy útil.

Para ayudar a descubrir cuál es el verdadero error, puede activar los informes de excepción mucho antes en Visual Studio. La combinación de teclas predeterminada es Ctrl + Alt + E. Desde allí, marque todas las casillas.

Ahora la excepción que se arroja en su código se resaltará en el depurador.

+3

Ordenado. Gracias. El constructor de ventana lanzaba una excepción ArrayIndexOutOfBounds. No tenía nada que ver con esa línea. Realmente molesto. – Luke

+1

gracias, realmente ayudaron! – mbdavis

+0

gracias, eso fue realmente útil ...! –

1

que xaml se ve bien. no debería haber ningún problema con eso. Creo que intenta obtener algunos datos. ¿Estás tratando de obtener algún mensaje con tu aplicación? si es así, el tamaño del mensaje predeterminado es 65536 bytes. aumenta ese número en tu app.config. también abre las ventanas de salida mientras ejecuta su programa y verifica si hay errores de enlace.

3

Trate de éste de referencia

"Ur necesario DLL" -> propiedades-> copia a local-> true (cambiarlo de falsa)

Guardar & solución limpia & luego reconstruirla. Creo que funcionará (funcionó para mí).

0

tuve no pareció este error y el cambio de informes de excepción para ayudar

me di cuenta de que yo estaba tratando de llamar:

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

Dónde \server debería ser \\server

Cambiar esta fijado el problema, pero es bastante molesto tener un mensaje de error que no dice nada sobre su error.

De hecho, he notado este error en algunos lugares cuando una cadena no se ha formado correctamente en wpf, por lo que podría ser un buen lugar para comenzar.