jas*_*onk 16 wpf binding templates visual-studio-2010
我刚刚开始尝试使用WPF模板和样式,我不确定我做错了什么.下面的目标是交替菜单中选项的颜色.代码可以正常工作,但是当我为"MenuChoiceOdd"的第二段复制并粘贴/重命名时,我收到以下错误:
>在'System.Windows.Baml2006.TypeConverterMarkupExtension'上提供值引发异常.
代码示例:
<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>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
jas*_*onk 12
是的,星期一......
当我复制粘贴来自另一个控件的颜色字符串时,它在前缀中放入两个"##":
<GradientStop Color="##FFCBCBCB" Offset="1" />
Run Code Online (Sandbox Code Playgroud)
仍然是一个糟糕的错误消息.
与其他人类似 - 这个可怕的错误消息只是意味着我的xaml中出现语法错误:
<CheckBox Height="" IsChecked="{Binding IsChecked, Mode=TwoWay}" Width="80">
Run Code Online (Sandbox Code Playgroud)
注意我没有填写高度值..
| 归档时间: |
|
| 查看次数: |
25069 次 |
| 最近记录: |