2009-03-17 29 views
30

Tôi đang cố gắng để làm cho các góc của một cửa sổ (WPF) tròn và nó không hoạt động, tôi đã cố gắng để làm cho cửa sổ chính nó trong suốt và thêm một biên giới nội bộ với các góc tròn và nó không hoạt động.Làm cách nào để tạo biểu mẫu góc tròn trong WPF?

Bất kỳ ý tưởng nào?

+9

YAY! Câu hỏi SO đầu tiên của tôi !!! – Shimmy

Trả lời

32

bạn cần đặt WindowStyle thành WindowStyle.None, thao tác này sẽ xóa chrome, sau đó bạn có thể cho phép minh bạch thuộc tính trong phần tử Cửa sổ và đặt màu nền thành trong suốt. Tất cả điều này có thể được thực hiện như là thuộc tính cho thẻ cửa sổ.

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

Để thực hiện các góc được làm tròn, sử dụng một biên giới và thiết lập thuộc tính

+1

Bạn có thể hiển thị ví dụ để đặt đường viền không !! – Moumit

2

cornerRadius Bạn cũng cần phải thực hiện một viền trong suốt xung quanh cửa sổ của bạn đó là một vài điểm ảnh rộng, nếu không các cạnh của góc tròn của bạn bị cắt gọn

4

không sử dụng AllowsTransparency nó chậm và lỗi, hãy nhìn vào liên kết này, hãy tìm phần "Office 2007 mà không Aero - Hoặc, bạn có trách nhiệm tất cả mọi thứ":

https://blogs.msdn.microsoft.com/wpfsdk/2008/09/08/custom-window-chrome-in-wpf/CHỈNH SỬA: một số kỹ thuật trong bài đăng này dành riêng cho Vista, nhưng phần "Office 2007 without Aero" hoạt động trên XP (và thực sự mô tả phần mềm được viết cho Vista phải quay trở lại XP) .

+0

Thật vậy. Bài viết đó có một số ví dụ hay. Tôi đã sử dụng kỹ thuật này nhiều lần. –

+0

Vấn đề của tôi là tôi cần dự án của mình tương thích với XP. – Shimmy

+0

Shimmy, các kỹ thuật được mô tả trong phần này tương thích với XP – Nir

2

nó có thể giúp bạn.

<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> 
Các vấn đề liên quan