Tôi đã cố gắng tạo một cửa sổ không có đường viền WindowStyle="None"
nhưng khi tôi kiểm tra nó, có vẻ như xuất hiện một thanh màu trắng ở trên cùng, sau một số nghiên cứu, nó có vẻ là "Đường viền thay đổi kích thước", đây là một hình ảnh (tôi nhận xét là màu vàng):
Sau một số nghiên cứu trên internet và rất nhiều giải pháp không phải xaml khó khăn, tất cả các giải pháp mà tôi tìm thấy đều nằm sau mã trong C # và rất nhiều dòng mã, tôi đã gián tiếp tìm thấy giải pháp ở đây: Cửa sổ tùy chỉnh tối đa làm mất hiệu ứng bóng đổ
<WindowChrome.WindowChrome>
<WindowChrome
CaptionHeight="0"
ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>
Lưu ý : Bạn cần sử dụng .NET 4.5 framework hoặc nếu bạn đang sử dụng phiên bản cũ hơn, hãy sử dụng WPFShell, chỉ cần tham chiếu shell và sử dụng Shell:WindowChrome.WindowChrome
thay thế.
Tôi đã sử dụng thuộc WindowChrome
tính của Window, nếu bạn sử dụng điều này, "đường viền thay đổi kích thước" màu trắng sẽ biến mất, nhưng bạn cần xác định một số thuộc tính để hoạt động chính xác.
CaptionHeight: Đây là chiều cao của vùng phụ đề (thanh tiêu đề) cho phép thực hiện hành vi nhấp đúp vào Aero snap như thanh tiêu đề bình thường. Đặt giá trị này thành 0 (không) để các nút hoạt động.
ResizeBorderThickness: Đây là độ dày ở cạnh cửa sổ, nơi bạn có thể thay đổi kích thước cửa sổ. Tôi đặt thành 5 vì tôi thích con số đó, và bởi vì nếu bạn đặt số 0 thì rất khó để thay đổi kích thước cửa sổ.
Sau khi sử dụng đoạn mã ngắn này, kết quả là:
Và bây giờ, đường viền màu trắng đã biến mất mà không cần sử dụng ResizeMode="NoResize"
và AllowsTransparency="True"
nó cũng hiển thị một cái bóng trong cửa sổ.
Sau đó, tôi sẽ giải thích cách làm cho các nút hoạt động (tôi không sử dụng hình ảnh cho các nút) một cách dễ dàng với mã đơn giản và ngắn, Tôi là người mới và tôi nghĩ rằng tôi có thể đăng lên codeproject, vì ở đây tôi không tìm thấy nơi để đăng hướng dẫn.
Có thể có một giải pháp khác (tôi biết rằng có những giải pháp khó và khó cho những người như tôi) nhưng điều này phù hợp với các dự án cá nhân của tôi.
Đây là mã hoàn chỉnh
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Concursos"
mc:Ignorable="d"
Title="Concuros" Height="350" Width="525"
WindowStyle="None"
WindowState="Normal"
ResizeMode="CanResize"
>
<WindowChrome.WindowChrome>
<WindowChrome
CaptionHeight="0"
ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>
<Grid>
<Rectangle Fill="#D53736" HorizontalAlignment="Stretch" Height="35" VerticalAlignment="Top" PreviewMouseDown="Rectangle_PreviewMouseDown" />
<Button x:Name="Btnclose" Content="r" HorizontalAlignment="Right" VerticalAlignment="Top" Width="35" Height="35" Style="{StaticResource TempBTNclose}"/>
<Button x:Name="Btnmax" Content="2" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,0,35,0" Width="35" Height="35" Style="{StaticResource TempBTNclose}"/>
<Button x:Name="Btnmin" Content="0" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,0,70,0" Width="35" Height="35" Style="{StaticResource TempBTNclose}"/>
</Grid>
Cảm ơn bạn!