WPF模板错误-“;在'上提供价值;System.Windows.Baml2006.TypeConverterMarkupExtension';抛出异常。”;
我刚刚开始试验WPF模板和样式,我不确定我做错了什么。下面的目标是交替菜单中选项的颜色。该代码仅适用于,但当我为“MenuChoiceOdd”的第二段复制并粘贴/重命名它时,会出现以下错误: >在“System.Windows.Baml2006.TypeConverterMarkupExtension”上提供值时引发异常 代码示例:WPF模板错误-“;在'上提供价值;System.Windows.Baml2006.TypeConverterMarkupExtension';抛出异常。”;,wpf,templates,visual-studio-2010,binding,Wpf,Templates,Visual Studio 2010,Binding,我刚刚开始试验WPF模板和样式,我不确定我做错了什么。下面的目标是交替菜单中选项的颜色。该代码仅适用于,但当我为“MenuChoiceOdd”的第二段复制并粘贴/重命名它时,会出现以下错误: >在“System.Windows.Baml2006.TypeConverterMarkupExtension”上提供值时引发异常 代码示例: <Window x:Class="WpfApplication1.Template_Testing" xmlns="http://schema
<Window x:Class="WpfApplication1.Template_Testing"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Template_Testing" Height="300" Width="300">
<Grid>
<Grid.Resources>
<ControlTemplate x:Key="MenuChoiceEven">
<Border BorderThickness="1" BorderBrush="#FF4A5D80">
<TextBlock Height="Auto" HorizontalAlignment="Stretch" Margin="0" Width="Auto" FontSize="14" Foreground="SlateGray" TextAlignment="Left" AllowDrop="True" Text="{Binding Path=Content, RelativeSource={RelativeSource TemplatedParent}}">
<TextBlock.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="White" Offset="0" />
<GradientStop Color="#FFC2CCDB" Offset="1" />
</LinearGradientBrush>
</TextBlock.Background>
</TextBlock>
</Border>
</ControlTemplate>
<ControlTemplate x:Key="MenuChoiceOdd">
<Border BorderThickness="1" BorderBrush="#FF4A5D80">
<TextBlock Height="Auto" HorizontalAlignment="Stretch" Margin="0" Width="Auto" FontSize="14" Foreground="SlateGray" TextAlignment="Left" AllowDrop="True" Text="{Binding Path=Content, RelativeSource={RelativeSource TemplatedParent}}">
<TextBlock.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="White" Offset="0" />
<GradientStop Color="##FFCBCBCB" Offset="1" />
</LinearGradientBrush>
</TextBlock.Background>
</TextBlock>
</Border>
</ControlTemplate>
</Grid.Resources>
<Border BorderBrush="SlateGray" BorderThickness="2" Margin="10" CornerRadius="10" Background="LightSteelBlue" Width="200">
<StackPanel Margin="4">
<TextBlock Height="Auto" HorizontalAlignment="Stretch" Margin="2,2,2,0" Name="MenuHeaderTextBlock" Text="TextBlock" Width="Auto" FontSize="16" Foreground="PaleGoldenrod" TextAlignment="Left" Padding="10" FontWeight="Bold"><TextBlock.Background><LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"><GradientStop Color="LightSlateGray" Offset="0" /><GradientStop Color="DarkSlateGray" Offset="1" /></LinearGradientBrush></TextBlock.Background></TextBlock>
<StackPanel Height="Auto" HorizontalAlignment="Stretch" Margin="2,0,2,0" Name="MenuChoicesStackPanel" VerticalAlignment="Top" Width="Auto">
<Button Template="{StaticResource MenuChoiceEven}" Content="Test Even menu element" />
<Button Template="{StaticResource MenuChoiceOdd}" Content="Test odd menu element" />
</StackPanel>
</StackPanel>
</Border>
</Grid>
</Window>
我做错了什么?哦,今天是星期一
当我从另一个控件复制粘贴颜色字符串时,它在前缀中放置了两个“##”s:
<GradientStop Color="##FFCBCBCB" Offset="1" />
仍然是一条糟糕的错误消息。我也有同样的错误,原因是:
<Border Margin="5" BorderBrush="Black" BorderThickness="" Width="Auto"/>
通过在BorderThickness中添加一个数字进行修复在我的情况下,我更改了项目名称。在我犯了这个错误之后。我重新选择了图像,发现我也需要更改图像的资源名称
<Image x:Name="imgSrc" Grid.Row="1" Source="/PREV%20-%20Filter;component/Images/Subtraktive%20Farbmischung%20%28Malen%20mit%20Wasserfarben%29.jpg" />
/上一个%20-%20过滤器;组件需要校正到/DSP%20-%20滤波器;组件。在网格上分配Width=“*”给了我一个错误,第一次看起来很奇怪,但它想说的是标记无法转换为实际类型 与其他类似-这个可怕的错误消息只是意味着我的xaml中有语法错误:
<CheckBox Height="" IsChecked="{Binding IsChecked, Mode=TwoWay}" Width="80">
请注意,我没有填写高度值。当我忘记了花括号时,我有相同的值:
<DataTrigger Binding="{Binding Path=IsWhiteboardShared}" Value="True">
<Setter Property="Background" Value="StaticResource AccentColorBlueBrush"/>
</DataTrigger>
我的任务是修复一个错误,在这个错误中,类似的错误信息会无限显示出来。当我发现问题是由以下原因引起的时,我有点失望(我期待着更复杂、更灾难性的事情发生!):
与其他人不同的是,我的XAML语法是正确的
<ImageBrush ImageSource="..\Images\previous_icon.png" />
当我更改图像时,此错误开始出现-后来意识到我确实更改了文件夹中的图像,但忘记将其包含在我的项目中
因此,尽管XAML可以在“Desgn”视图中显示图像,但我在运行时遇到了这个异常。
愚蠢的一个 在边框笔刷中使用灰色而不是灰色时,我也有同样的错误
<Setter Property="BorderBrush" Value="Grey"/>
而不是
<Setter Property="BorderBrush" Value="Gray"/>
下面是这个错误的另一个例子,以及我是如何解决它的 这似乎是由于将我的项目从VS2010升级到VS2012和VS2013所致。我不确定为什么这会是一个问题,但我想是的 我开发了一个VisualStudio向导,以自动化将项目添加到我们的大型解决方案(300多个项目)的过程,因为我们的开发人员需要帮助维护项目。我在向导中使用了WPF,这在VS2010中非常有效。我将项目升级到VS2012和VS2013,开始出现此错误。结果证明,在某个点上,我的图标和图像文件的路径被搞砸了。一旦我纠正了它——我直接在XAML中纠正了它——我就不再得到错误
如果您可能需要参考资源的帮助-这是我用来纠正问题的帖子:我也有同样的错误,但在参考资料文件夹中使用了错误的图像路径 我有这个
<controls:ImageButton Grid.Column="2" ImageButtonSource="Resources/close_normal.png"/>
但我需要这个
<controls:ImageButton Grid.Column="2" ImageButtonSource="../Resources/close_normal.png"/>
必须在开始时添加../首先返回一个文件夹在使用此代码的“发件箱”时,我遇到了相同的错误:
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<materialDesign:PackIcon Kind="OutBox" Width="25" Height="25" VerticalAlignment="Center" Margin="5" Foreground="DodgerBlue"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
发件箱是未知值,因此更改为“StopCircle”,然后修复…我的类似,但因为我使用了Button Command=“CommandName”而不是Command=“{Binding Path=CommandName}”。这里是WPF中的新手,它确实是一个可怕的错误消息如果异常包括行号,它会很方便。。。
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<materialDesign:PackIcon Kind="OutBox" Width="25" Height="25" VerticalAlignment="Center" Margin="5" Foreground="DodgerBlue"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>