2012-01-28 43 views
19

Tôi đã làm việc trên một dự án WPF trên máy tính của tôi đêm qua, sử dụng VS 2010 Ultimate.XAML Parse Exception - xmlns: x = "http://schemas.microsoft.com/winfx/2006/xaml"

Tôi vừa mới mở nó trên Netbook của mình với VS C# 2010 Express.

Khi tôi cố gắng chạy nó, nó Tôi ném một ngoại lệ XAML Parse mà nói với tôi rằng dòng:

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

là vấn đề. Tôi không thể nhìn thấy một vấn đề với nó, tôi chưa bao giờ thay đổi nó và nó có vẻ như nó là những gì nó nên được.

Các Lỗi:

'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'. 

Full XAML:

<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

Đây là lỗi phổ biến. Tuy nhiên, nguồn không phải lúc nào cũng đơn giản. Và đôi khi nó không liên quan gì đến bản thân XAML. Một trường hợp tôi đã có những gì viết một đối tượng thông qua filestream vào đĩa sau khi serialization. Điều này làm việc hoàn hảo trong Win7 và ném chính xác ngoại lệ này trong WinXP.Hãy thử đặt các điểm ngắt trong mã của bạn và cố gắng tìm ra dòng cụ thể nào gây ra lỗi. Và sau đó đi sâu hơn trong ngăn xếp cuộc gọi. Chúc mừng. – Oybek

Trả lời

74

XAMLParseException là một ngoại lệ chung ném vào WPF. Thật không may nó không phải là rất hữu ích.

Để giúp tìm ra lỗi thực sự là gì, bạn có thể bật báo cáo ngoại lệ sớm hơn nhiều trong Visual Studio. Tổ hợp phím mặc định là Ctrl + Alt + E. Từ đó, chọn tất cả các hộp.

Bây giờ ngoại lệ được ném vào mã của bạn sẽ được đánh dấu trong trình gỡ lỗi.

+3

Đã sắp xếp. Cảm ơn. Trình tạo cửa sổ đã ném ra một ngoại lệ ArrayIndexOutOfBounds. Nó không liên quan gì đến dòng đó. Thực sự gây phiền nhiễu. – Luke

+1

cảm ơn, thực sự đã giúp! – mbdavis

+0

cảm ơn, điều đó thực sự hữu ích ...! –

1

rằng xaml có vẻ ổn. không nên có vấn đề gì với điều đó. tôi nghĩ bạn cố gắng lấy một số dữ liệu. bạn đang cố gắng nhận được một số tin nhắn với ứng dụng của bạn? nếu vậy kích thước tin nhắn mặc định là 65536 byte. tăng số đó trong app.config của bạn. cũng mở các cửa sổ đầu ra trong khi chạy chương trình của bạn và kiểm tra xem có lỗi ràng buộc hay không.

3

Hãy thử này từ tài liệu tham khảo

"Ur cần dll" -> Properties-> bản sao cho local-> đúng (thay đổi nó từ false)

tiết kiệm & giải pháp sạch & sau đó xây dựng lại nó. Tôi nghĩ rằng nó sẽ làm việc (làm việc cho tôi).

0

Tôi có lỗi và thay đổi báo cáo ngoại lệ này không có vẻ để giúp

tôi nhận thấy rằng tôi đã cố gắng để gọi:

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

đâu \server nên \\server

Thay đổi này khắc phục được vấn đề nhưng nó là khá khó chịu có một thông báo lỗi mà không cho bạn biết bất cứ điều gì về lỗi của bạn.

Tôi đã thực sự nhận thấy lỗi này ở một vài nơi khi chuỗi chưa được định dạng đúng trong wpf, vì vậy đó có thể là một nơi tốt để bắt đầu.