2009-08-26 4 views
1

Silverlight 3 응용 프로그램에서 눈금의 배경을 그라디언트로 설정하려고 할 때 문제가 있습니다. 내 응용 프로그램에서 그리드의 배경을 그라디언트로 설정하면 해당 그라디언트는 브라우저에서 렌더링되지 않습니다. 이 그라디언트 브러시를 resouce (app.xaml과 로컬 XAML 파일 모두)로 설정했으며 직접 그라디언트 브러시를 직접 코딩 해 보았습니다. VS 및 Expression Blend의 XAML에서 수동으로 변경했습니다.Silverlight 3 - 배경 문제로 그라디언트 - 버그?

쉐이프가 만들어지고 파일이 혼합으로 표시되면 배경색이 올바르게 렌더링됩니다. 배경이 단색 (하드 코드 및 리소스 모두)으로 설정된 경우 배경은 표현식과 브라우저에서 잘 렌더링됩니다. 이 두 가지 모두 나에게이 컨트롤이 문제의 컨트롤 위에 렌더링되는 Z- 인덱스 문제가 아니라는 것을 나에게 제안합니다. 브러시에 대한

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

좋습니다. 여기 거래가 있습니다. 적어도 Silverlight의 부분에는 버그가 아닙니다! 이것은 개발자 측의 버그입니다!

리소스에 사용 된 그라디언트를 자세히 살펴보면 처음 두 16 진수 값만 변경됩니다 (아래 참조). 물론 알파 채널은 그 다음에 나오는 모든 F와 함께 한 수준의 투명성 수준에서 다른 수준으로 옮겨 가고 있습니다.

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

이제 큰 페이지에 삽입되는 구성 요소이기 때문에 배경이 큰 페이지에 의해 설정됩니다. 블렌드에서 배경은 BLEND의 배경입니다.이 배경은 회색으로 블렌드에서 회색 그라디언트처럼 보이게하지만 다양한 투명도 수준의 흰색입니다. 컨트롤이 흰색 배경이있는 메인 페이지에 삽입되면 볼 수 없습니다.

그럼이 이야기의 도덕은 무엇입니까? 함께 작업하는 색상에주의하십시오!