XAML Parse Exception - xmlns: x = "http://schemas.microsoft.com/winfx/2006/xaml"
Я работал над проектом WPF на своем ПК вчера вечером, используя VS 2010 Ultimate.
Я только что открыл его на своем Netbook с VS С# 2010 Express.
Когда я пытаюсь запустить его, я выбрал XAML Parse Exception, в котором говорится, что строка:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Это проблема. Я не вижу проблемы с этим, я никогда не менял его, и похоже, что это то, что должно быть.
Ошибка:
'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:
<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
XAMLParseException - общее исключение, созданное в WPF. К сожалению, это не очень полезно.
Чтобы узнать, что такое настоящая ошибка, вы можете включить отчет об исключении гораздо раньше в Visual Studio. Комбинация клавиш по умолчанию - Ctrl + Alt + E. Отметьте все поля.
Теперь исключение, которое выбрано в вашем коде, будет выделено в отладчике.
Ответ 2
Попробуйте это из ссылки
"Ur нужна dll" → properties- > copy to local- > true (изменить его от false)
сохранить и очистить решение, а затем перестроить его. Я думаю, что он будет работать (работал у меня).
Ответ 3
что xaml выглядит нормально. там не должно быть никаких проблем с этим.
Я думаю, вы пытаетесь получить некоторые данные. вы пытаетесь получить сообщение с вашим приложением? если это так, размер сообщения по умолчанию составляет 65536 байт. увеличьте это число в своем app.config.
также открывайте окна вывода во время запуска программы и проверяете наличие ошибок привязки.
Ответ 4
У меня была эта ошибка, и изменение отчета об исключении не помогло
Я заметил, что пытался позвонить:
var processClass = new ManagementClass(@"\server.domain1.co.uk\root\cimv2:Win32_Process");
Где \server
должно быть \\server
Изменение этой проблемы устраняет проблему, но довольно неприятно иметь сообщение об ошибке, которое ничего не говорит о вашей ошибке.
Я действительно заметил эту ошибку в нескольких местах, когда строка не была правильно сформирована в wpf, так что это может быть хорошим местом для начала.