WPF平铺背景,带有png图像和纯色

本文关键字:png 图像 纯色 带有 背景 WPF | 更新日期: 2023-09-27 18:01:13

我有一个类似的代码

<Viewbox Grid.Row="1">
  <controls:Tile Name="tileInvoice" Click="tileInvoice_Click" VerticalAlignment="Stretch" ToolTip="{x:Static resx:omniLang.Invoice}">
    <controls:Tile.Background>
      <ImageBrush ImageSource="Resources/invoice.png" Stretch="Uniform"/>
    </controls:Tile.Background>
    <TextBlock Name="headerInvoice" Text="{x:Static resx:omniLang.Invoice}" FontSize="22" Foreground="Black" FontWeight="Bold" VerticalAlignment="Center" Margin="0,100,0,0" />
  </controls:Tile>
</Viewbox>

我很想用纯色作为背景,仍然使用png图像。我已经不太想了。我应该使用VisualBrush来实现这一点吗?

WPF平铺背景,带有png图像和纯色

很明显,一个Background属性只能有一个值,因此不能将两个背景设置为同一属性。但是,没有什么可以阻止您将控件放入容器控件并设置其Background属性:

<Viewbox Grid.Row="1">
    <Grid Background="Red"> <!-- Set your solid colour here -->
        <controls:Tile Name="tileInvoice" Click="tileInvoice_Click" VerticalAlignment="Stretch" ToolTip="{x:Static resx:omniLang.Invoice}">
            <controls:Tile.Background>
                <ImageBrush ImageSource="Resources/invoice.png" Stretch="Uniform"/>
            </controls:Tile.Background>
            <TextBlock Name="headerInvoice" Text="{x:Static resx:omniLang.Invoice}" FontSize="22" Foreground="Black" FontWeight="Bold" VerticalAlignment="Center" Margin="0,100,0,0" />
        </controls:Tile>
    </Grid>
</Viewbox>