Tôi đã cố gắng để tạo ra một không biên giới cửa sổ với WindowStyle="None"
nhưng khi tôi thử nghiệm nó, dường như xuất hiện một thanh màu trắng ở phía trên, sau khi một số nghiên cứu nó dường như là một "border Thay đổi kích thước", đây là một hình ảnh (tôi nhấn mạnh bằng màu vàng):
Sau khi một số nghiên cứu trên internet, và rất nhiều các giải pháp khó khăn không XAML, tất cả các giải pháp mà tôi thấy là mã sau trong C# và rất nhiều dòng mã, tôi thấy gián tiếp các giải pháp ở đây: Maximum custom window loses drop shadow effect
<WindowChrome.WindowChrome>
<WindowChrome
CaptionHeight="0"
ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>
Note: Bạn cần sử dụng khung công tác .NET 4.5 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 khảo vỏ và sử dụng Shell:WindowChrome.WindowChrome
thay thế.
Tôi đã sử dụng thuộc tính WindowChrome
của Window, nếu bạn sử dụng màu trắng "đường viền thay đổi kích thước" này 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 khu vực chú thích (thanh tiêu đề) cho phép Aero Snap, thao tác nhấp đúp như một thanh tiêu đề bình thường. Đặt giá trị này thành 0 (không) để làm cho các nút hoạt động.
ResizeBorderThickness: Đây là độ dày ở cạnh của cửa sổ là nơi bạn có thể thay đổi kích thước cửa sổ. Tôi đặt đến 5 vì tôi thích con số đó, và bởi vì nếu bạn đặt không khó để thay đổi kích thước cửa sổ.
Sau khi sử dụng mã ngắn này kết quả là thế này:
Và bây giờ, các đường viền màu trắng biến mất mà không sử dụng ResizeMode="NoResize"
và AllowsTransparency="True"
, cũng nó cho thấy một cái bóng trong cửa sổ.
Sau đó, tôi sẽ giải thích cách thực hiện các nút (Tôi không sử dụng hình ảnh cho các nút) dễ dàng với mã đơn giản và ngắn, Im mới và tôi nghĩ rằng tôi có thể đăng lên codeproject, bởi vì ở đây tôi đã làm ' t tìm nơi đăng bài hướng dẫn.
Có thể có giải pháp khác (tôi biết rằng có những giải pháp khó và khó cho noobs 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!
Xin lưu ý rằng Allowtransperency tạo ra rò rỉ bộ nhớ. Vì vậy, tránh sử dụng nó. Vui lòng tham khảo http://social.msdn.microsoft.com/Forums/en/wpf/thread/fc76b788-c4a6-45f4-896e-5646dffd2155 –
@DipeshBhatt Tôi không thể tìm thấy bất kỳ lời giải thích nào cho xác nhận quyền sở hữu đó trong liên kết mà bạn được cung cấp.có thể bạn muốn đăng liên kết https://social.msdn.microsoft.com/Forums/vstudio/en-US/69bae823-dbe9-4a38-b964-e87b71195bb6/window-on-seperate-thread-memory-leak-when- allowtransparencytrue-progress-window? forum = wpf – itsho