1

尝试将 Silverlight 3 应用程序中的网格背景设置为渐变时出现问题。当我在应用程序中将网格的背景设置为渐变时,该渐变根本不会在浏览器中呈现。我已将此渐变画笔设置为资源(在 app.xaml 以及本地 XAML 文件中),并且我还尝试直接对渐变画笔进行硬编码。我已经在 VS 的 XAML 和 Expression Blend 中手动进行了更改。

制作 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>

有什么想法吗?

4

1 回答 1

2

好的,这就是交易。这不是错误,至少在 Silverlight 方面不是!这是开发人员的错误!

如果您仔细查看资源中使用的梯度,只有前两个十六进制值会发生变化(见下文)。当然,这是 Alpha 通道,以及随后的所有 F,我真的只是从一个透明级别转到另一个级别。

<LinearGradientBrush x:Key="TestBrush"
         EndPoint="0.5,1"
         StartPoint="0.5,0">
    <GradientStop Color="#8DFFFFFF"
                Offset="1" />
    <GradientStop Color="#E4FFFFFF" />
</LinearGradientBrush>

现在,因为这是一个被注入到更大页面的组件,所以背景由更大的页面设置。所以在Blend中,背景是BLEND的背景,是灰色的,这使得整个东西在Blend中看起来像是有一个灰色渐变,但它只是简单的白色,具有不同程度的透明度。当控件被注入到具有白色背景的主页中时,您看不到它。

那么,这个故事的寓意是什么?注意你正在使用的颜色!

于 2009-10-12T13:14:23.603 回答