XAML使堆栈面板略微透明,但文本内部没有

时间:2014-04-02 09:31:23

标签: xaml windows-store-apps stackpanel

我有一个堆叠面板,我填充了一个文本块。我有一个stackpanel.resources。我尝试将背景设置为透明,但它会使整个样式不可见(但文本不可见),我尝试使用不透明度。这确实使我的stackpanel略微透明,但也是stackpanel中的文本。

stackpanel看起来像这样:

        <StackPanel Orientation="Vertical" Margin="550,25,0,0">
            <Border>
                <TextBlock OpticalMarginAlignment="None">
                    <Run FontSize="24" Text="Product"></Run><LineBreak/>
                    <Run FontSize="18" Text="Artikelnummer: "></Run><LineBreak/>
                    <Run FontSize="18" Text="Omschrijving: "></Run><LineBreak/>
                    <Run FontSize="18" Text="Eenheid: "></Run>
                </TextBlock>
            </Border>
            <StackPanel.Resources>
                <Style TargetType="Border">
                    <Setter Property="Background" Value="#287d37" />
                    <Setter Property="Margin" Value="5" />
                    <Setter Property="Width" Value="400" />
                    <Setter Property="Height" Value="105" />
                </Style>
                <Style TargetType="TextBlock">
                    <Setter Property="Foreground" Value="White" />
                    <Setter Property="Margin" Value="5" />
                </Style>
            </StackPanel.Resources>
        </StackPanel>

有谁知道如何实现我的目标,即将stackpanel的背景设置为不透明度0.25,但堆栈面板内的文字不是?

提前致谢!

1 个答案:

答案 0 :(得分:1)

在硬编码颜色的情况下指定alpha通道(第一个字节),如果使用画笔则指定不透明度:

<StackPanel Background="#44287d37">
   ...
</StackPanel>

<StackPanel>

   <StackPanel.Background>
      <SolidColorBrush Color="Blue" Opacity=".25"/>
   </StackPanel.Background>

   ...

</StackPanel>