2009-02-04 3 views
6

저는 건물에 WPF 형식을 사용하고 있습니다. 윈도우의 배경 이미지를 지정하고 싶습니다. 그러나 이미지로 덮히 지 않은 양식 영역이 흰색이되도록 색상을 지정하고 싶습니다. 두 가지 다른 배경 브러시를 사용하여 보여주는 몇 가지 예제를 보았습니다. 그러나 VS.NET에서 여러 브러쉬를 사용할 수 없다고 알려주려고합니다. WPF 형식의 이미지와 단색 배경을 결합합니다.

내가

<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> 

이 이미지의 위대한 작품을 사용하고있어 XAML이지만, 이미지에 포함되지 배경이 검은 색입니다. 흰색으로 만들려면 어떻게해야합니까? 이미지 자체를 변경하는 것은 실제로 옵션이 아닙니다.

답변

6

을 시도해보십시오이 (난을 할 수있는 질문에 직접 관련이없는 모든 것을 제거 명확한 코드) :

<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> 

기본적으로, 창에 격자를 넣어 그리드 당신에게 배경 이미지를 제공, 창에 직접 그리드 내부에 모든 것을 넣어 대신보다, 이미지 색상 배후에 윈도우의 배경을 설정 .

1

브러시를 결합 할 수 있을지 잘 모르겠습니다. 당신은 ImageBrush와 함께 놀러 수, 또는 당신이 "배경"을 잊고 그리드에서 서로의 상단에있는 항목을 스택 수 :

<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> 
2

내선 번호 Nirs 대답. 콘텐츠 주위에 여백을두고 싶지만 배경 이미지가 전체 창을 채울 수있게하려면 테두리를 사용하여 배경을 쌓을 수도 있습니다.

<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"> 

    <Border Padding="10"> 
     <Border.Background> 
      <ImageBrush ImageSource="logo_header2.png" /> 
     </Border.Background> 
    <!--<Your content >--> 
    </Border> 

</Window> 
관련 문제