尝试将Silverlight 3应用中的网格背景设置为渐变时出现问题。当我在我的应用程序中将网格的背景设置为渐变时,该渐变根本不会在浏览器中呈现。我已将此渐变画笔设置为resouce(在app.xaml以及本地XAML文件中),我也尝试直接对渐变画笔进行硬编码。我已经在VS和Expression Blend的XAML中手动进行了更改。
制作chane并在Blend中查看文件时,背景颜色会正确呈现。当背景设置为纯色(硬编码和资源)时,背景渲染在Expression和浏览器中都很好。这两件事都告诉我,这不是一个z-index问题,在所讨论的控件之上有一个控件呈现。
画笔的XAML是:
<LinearGradientBrush x:Key="TestBrush"
EndPoint="0.5,1"
StartPoint="0.5,0">
<GradientStop Color="#8DFFFFFF"
Offset="1" />
<GradientStop Color="#E4FFFFFF" />
</LinearGradientBrush>
网格的XAML及其内容是:
<Grid Margin="1,0,0,0"
Grid.Row="0"
VerticalAlignment="Top"
Height="49" Background="{StaticResource TestBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal"
Margin="0"
Grid.Column="0"
Grid.Row="0">
<TextBlock Margin="0.125,1.5,1,1.5"
VerticalAlignment="Center">Code:</TextBlock>
<TextBox x:Name="SearchCodeTextBox"
Padding="1,0,0,0"
Margin="1,1.5,0,1.5"
Width="44"
Text="{Binding Mode=TwoWay, Path=CurrentTabularViewModel.SearchCode}"
TextWrapping="Wrap"
KeyUp="SearchCodeTextBox_KeyUp" />
<StackPanel Margin="2,0"
Height="20"
Background="{StaticResource CP_Blue2}">
<TextBlock MinWidth="200" />
</StackPanel>
<Button Margin="10,1,0,1"
Content="Add Code"
Height="20" />
</StackPanel>
<StackPanel Orientation="Horizontal"
Margin="35,0,0,0"
Grid.Row="1"
Grid.Column="0">
<Button Margin="0"
Width="24"
Content="<"
Height="20"
VerticalContentAlignment="Top" />
<Button Margin="2,0"
Content="Tabular"
Height="20"
Width="Auto"
HorizontalAlignment="Stretch"
commands:Click.Command="{Binding Path=CurrentTabularViewModel.SearchCommand}"
commands:Click.CommandParameter="{Binding Path=SelectedSessionType}" />
<Button Content=">"
Width="24"
Margin="2,0"
Height="20" />
<Button Content="Instructional Notes"
Width="Auto"
Margin="30,0,2,0"
Height="20" />
</StackPanel>
</Grid>
有什么想法吗?
答案 0 :(得分:2)
如果仔细观察资源中使用的渐变,只会改变前两个十六进制值(见下文)。当然,这是Alpha通道,以及随后的所有Fs,我实际上只是从一个透明层到另一个透明层。
<LinearGradientBrush x:Key="TestBrush"
EndPoint="0.5,1"
StartPoint="0.5,0">
<GradientStop Color="#8DFFFFFF"
Offset="1" />
<GradientStop Color="#E4FFFFFF" />
</LinearGradientBrush>
现在,因为这是一个被注入较大页面的组件,后台由较大的页面设置。所以在Blend中,背景是BLEND的背景,这是一种灰色,这使整个事物看起来像Blend中的灰色渐变,但它只是白色,具有不同的透明度。当控件注入具有白色背景的主页面时,您无法看到它。
那么,这个故事的寓意是什么?注意你正在使用的颜色!