能否在silverlight中为listboxitem背景设置渐变笔刷?
我正在寻找一种将gradientbrush设置为列表框项目背景的方法。我定义了一个DataTemplate,并指定了一个渐变笔刷,但它始终显示为列表框背景(即,它从不显示为渐变笔刷) 我已经能够设置listbox本身的背景,我可以使用“setter”对象将listboxitem的背景设置为标准颜色……但这些都不是我想要的 我真的希望每个列表项上的背景是一个渐变笔刷 下面是我构建的数据模板能否在silverlight中为listboxitem背景设置渐变笔刷?,silverlight,xaml,listbox,listboxitem,lineargradientbrush,Silverlight,Xaml,Listbox,Listboxitem,Lineargradientbrush,我正在寻找一种将gradientbrush设置为列表框项目背景的方法。我定义了一个DataTemplate,并指定了一个渐变笔刷,但它始终显示为列表框背景(即,它从不显示为渐变笔刷) 我已经能够设置listbox本身的背景,我可以使用“setter”对象将listboxitem的背景设置为标准颜色……但这些都不是我想要的 我真的希望每个列表项上的背景是一个渐变笔刷 下面是我构建的数据模板 <ListBox Name="MyListBox" Margin="12,67,12,169">
<ListBox Name="MyListBox" Margin="12,67,12,169">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Height="51" VerticalAlignment="Bottom">
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFC9F4D0"/>
<GradientStop Color="#FF2AC12A" Offset="0.333"/>
<GradientStop Color="#FF35DE35" Offset="1"/>
</LinearGradientBrush>
</Grid.Background>
<Canvas >
<dataInput:Label Width="227" Foreground="Yellow" Canvas.Left="158" Canvas.Top="8" Content="{Binding Place}"/>
<dataInput:Label Width="146" Foreground="Yellow" Canvas.Left="8" Canvas.Top="8" Content="{Binding Date}"/>
<dataInput:Label Content="{Binding People}" Width="346" FontSize="9.333" Foreground="Black" Canvas.Left="166" Canvas.Top="28"/>
<!-- <dataInput:Label Width="45" Content="Accept" Foreground="White" Canvas.Left="8" Canvas.Top="28"/>
<dataInput:Label Width="45" Content="Decline" Foreground="White" Canvas.Left="57" Canvas.Top="28"/> -->
<dataInput:Label Content="SomeText" Width="101" FontSize="9.333" Foreground="White" Canvas.Left="389" Canvas.Top="10"/>
<Image Height="21" Width="21" Canvas.Left="500" Canvas.Top="8" Source="Green Button.png"/>
</Canvas>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
有什么想法吗?您所做的是正确的,它不会设置listbox的背景,它只设置listboxitem的背景。我想你想不出来 要计算出来,只需给u r网格5留一个空白,然后查看。您所做的是正确的,它不设置listbox的背景,它只设置listboxitem的背景。我想你想不出来
要解决这个问题,只需给u r网格5留一个余量,然后查看。您的数据模板中发生了什么: 网格的背景设置为所需的颜色。然而,在这个网格的顶部,您的画布正在被绘制。因此,线性渐变背景是不可见的 如何纠正这一点
希望这有帮助
<Canvas Background="{Binding}">
<TextBox Width="227" Canvas.Left="158" Canvas.Top="8" Foreground="Yellow" Text="{Binding Name}" Background="{Binding}"/>
<TextBox Width="146" Canvas.Left="8" Canvas.Top="8" Foreground="Yellow" Text="{Binding Language}" Background="{Binding}"/>
</Canvas>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>