6

ImageBrushXAMLでを使用して、に背景を適用したいと思いますGrid

ブラシにax:Keyを付けて、グリッドで参照したいと思います。

残念ながら、背景としての画像はまったく表示されません。

<Window.Resources>
    <ImageBrush ImageSource="/MAQButtonTest;component/images/bird_text_bg.jpg" x:Key="BackgroundSponge" />
    <Style TargetType="TextBlock">
        <Setter Property="OverridesDefaultStyle" Value="True"/>
    </Style>
    <ControlTemplate TargetType="Button" x:Key="ButtonTemplate">
        <Grid Width="444" ShowGridLines="False" SnapsToDevicePixels="True" Background="{DynamicResource BackgroundSponge}">
            <Grid.RowDefinitions>
                <RowDefinition Height="51" />
                <RowDefinition Height="36" />
            </Grid.RowDefinitions>
            <Grid Grid.Row="0" Background="#286c97">

            </Grid>
            <Grid Grid.Row="1" Background="#5898c0">
                <ContentPresenter Grid.Row="0" />
            </Grid>
        </Grid>
    </ControlTemplate>
</Window.Resources>

私はおそらくそれを間違った方法で参照していると思います、私は試しましDynamicResourceStaticResource

4

3 に答える 3

11

私はこれを普通に使っています。画像がリソースとしてプロジェクトに追加されている場合は、このように相対的に参照します。

<ImageBrush x:Key="play" ImageSource="../Images/Buttons/Play.png" />

次に、イメージ ブラシを参照します。

<Border Background="{StaticResource play}"/>
于 2012-05-23T14:19:35.117 に答える
3

私はいつもこのようにしていました。

<Grid>
   <Grid.Background>
      <ImageBrush ImageSource="/Resources/Images/BG_BlankOptimized.png"/>
   </Grid.Background>
</Grid>

または、画像パスを使用して imagebrush リソースで呼び出す場合は、Paul が StaticResource を使用してそのスタイルを呼び出すことを提案したものに似ています。

于 2012-05-23T14:17:37.797 に答える
2

メイングリッドには、外側のグリッドの利用可能なすべてのスペースをカバーする内側の子があります。そのため、背景を見ることができません。

 <Grid Width="444"
          Height="500" 
          Background="{DynamicResource BackgroundSponge}"
          ShowGridLines="False"
          SnapsToDevicePixels="True">
        <Grid.RowDefinitions>
            <RowDefinition Height="51" />
            <RowDefinition Height="36" />
        </Grid.RowDefinitions>
        <Grid Grid.Row="0" Background="#286c97"  Opacity="0.2" Margin="5"/>
        <Grid Grid.Row="1" Background="#5898c0" Opacity="0.2" Margin="5">
            <ContentPresenter Grid.Row="0" />
        </Grid>
    </Grid>

幅だけで大丈夫ですが、高さはどうですか。高さを大きくすると、子アイテムが表示されます。

または子供たちの内側にマージンを持っている方が良いです。

Margin = "5"

またはインナーチャイルドを次のように透明にします

Opacity = "0.2"

于 2012-05-23T15:10:36.500 に答える