8

作成中の WPF フォームがあります。ウィンドウの背景画像を指定したいのですが、これは簡単です。ただし、画像で覆われていないフォームの領域が白になるように、色も指定したいと思います。2 つの異なる背景ブラシの使用例をいくつか見てきましたが、試してみると、VS.NET から複数のブラシを使用できないことがわかりました。

これは私が使用しているXAMLです

<Window x:Class="Consent.Client.Shell"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:cal="http://www.codeplex.com/CompositeWPF"
    Title="Shell" WindowStyle="None" WindowState="Maximized" FontSize="24">
    <Window.Background>
        <ImageBrush AlignmentX="Left" AlignmentY="Top"  Stretch="None" TileMode="None" ImageSource="logo_header2.png" />
    </Window.Background>
    <ItemsControl Background="White" VerticalAlignment="Center" cal:RegionManager.RegionName="MainRegion" >
    </ItemsControl>
</Window>

これは画像には最適ですが、画像で覆われていない背景は黒です。白くするにはどうすればいいですか?画像自体を変更することは、実際にはオプションではありません。

4

3 に答える 3

8

これを試してください(コードをより明確にするために、質問に直接関係のないものはすべて削除しました):

<Window x:Class="Consent.Client.Shell"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Background="White">
   <Grid>
      <Grid.Background>
         <ImageBrush ImageSource="logo_header2.png" />
      </Grid.Background>
      <ItemsControl>
      </ItemsControl>
   </Grid>
</Window>

基本的に、ウィンドウの背景を画像の色の後ろに設定し、ウィンドウにグリッドを配置してグリッドに背景画像を与え、ウィンドウに直接ではなくグリッド内にすべてを配置します。

于 2009-02-05T12:11:21.177 に答える
1

ブラシを組み合わせることができるかどうかわかりません。ImageBrush をいじってみるか、「背景」を忘れて、アイテムを Grid に積み重ねることができます。

<Window x:Class="Consent.Client.Shell"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:cal="http://www.codeplex.com/CompositeWPF"
    Title="Shell" WindowStyle="None" WindowState="Maximized" FontSize="24">
    <Grid>
        <Image Source="logo_header2.png" Stretch="None" VerticalAlignment="Top" />
        <ItemsControl Background="White" VerticalAlignment="Center" cal:RegionManager.RegionName="MainRegion" >
        </ItemsControl>
    </Grid>
</Window>
于 2009-02-04T19:38:26.550 に答える