2009-03-17 55 views

答えて

32

WindowStyleをWindowStyle.Noneに設定すると、クロムが削除され、Window要素の属性である透明度を許可し、背景色を透明に設定する必要があります。このすべてはウィンドウタグの属性として行うことができます。

+1

ボーダーを設定する例を表示できますか? – Moumit

2

を、角を丸く作るの境界線を使用し、cornerRadiusプロパティを設定するには

WindowStyle="None" 
AllowsTransparency="True" 
Background="Transparent" 

あなたはまた、いくつかのピクセルの幅ですあなたの窓の周りに透明の境界線、または他のあなたの丸みを帯びた角のエッジを作成する必要があり

4

、それは遅いとバギーだAllowsTransparencyを使用して、このリンクを見て、セクションを見てはいけないカットオフGET「エアロせずにOffice 2007 - あなたはすべてを担当している、または」:

https://blogs.msdn.microsoft.com/wpfsdk/2008/09/08/custom-window-chrome-in-wpf/

編集:この記事の技術のいくつかはVistaに固有のものですが、「Office 2007 Aeroなし」のセクションはXP上で動作します(実際にVista用に書かれたソフトウェアはXP上に戻されています) 。

+0

確かに。その記事には素晴らしい例がいくつかあります。私はそれを何度か使っていました。 –

+0

私の問題は私のプロジェクトがXPと互換性があることです。 – Shimmy

+0

Shimmy、このセクションで説明したテクニックはXP – Nir

2

<Grid DataContext="{Binding ElementName=root}"> 
    <Border Background="#90000000" Visibility="{Binding Visibility}"> 
     <Border BorderBrush="Black" BorderThickness="1" Background="AliceBlue" 
       CornerRadius="10,0,10,0" VerticalAlignment="Center" 
       HorizontalAlignment="Center"> 
      <Border.BitmapEffect> 
       <DropShadowBitmapEffect Color="Black" 
        Opacity="0.5" Direction="270" 
        ShadowDepth="0.7" /> 
      </Border.BitmapEffect> 
      <Grid Margin="10"> 
       <Grid.RowDefinitions> 
        <RowDefinition /> 
        <RowDefinition Height="Auto" /> 
       </Grid.RowDefinitions> 
       <TextBlock x:Name="MessageTextBlock" 
        Text="{Binding Message}" 
        TextWrapping="Wrap" Margin="5" /> 
       <UniformGrid Grid.Row="1" Margin="5" 
          Columns="2" HorizontalAlignment="Center" 
          VerticalAlignment="Bottom"> 
        <Button x:Name="OkButton" 
          Content="Ok" Margin="2" /> 
        <Button x:Name="CancelButton" 

          Content="Cancel" Margin="2" /> 
       </UniformGrid> 
      </Grid> 
     </Border> 
    </Border> 
</Grid> 
関連する問題