ฉันพยายามสร้างหน้าต่างไร้ขอบด้วย WindowStyle="None"
แต่เมื่อฉันทดสอบดูเหมือนว่าจะปรากฏแถบสีขาวที่ด้านบนหลังจากการวิจัยบางชิ้นดูเหมือนว่าจะเป็น "เส้นขอบปรับขนาด" นี่คือภาพ (ฉันสังเกตด้วยสีเหลือง):
หลังจากการค้นคว้าทางอินเทอร์เน็ตและโซลูชันที่ไม่ใช่ xaml ที่ยากจำนวนมากโซลูชันทั้งหมดที่ฉันพบคือรหัสที่อยู่เบื้องหลังใน C # และบรรทัดรหัสจำนวนมากฉันพบวิธีแก้ปัญหาทางอ้อมที่นี่: หน้าต่างที่กำหนดเองสูงสุดสูญเสียเอฟเฟกต์เงาตก
<WindowChrome.WindowChrome>
<WindowChrome
CaptionHeight="0"
ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>
หมายเหตุ : คุณต้องใช้. NET 4.5 framework หรือถ้าคุณใช้เวอร์ชันเก่ากว่าให้ใช้ WPFShell เพียงแค่อ้างอิงเชลล์และใช้Shell:WindowChrome.WindowChrome
แทน
ฉันใช้WindowChrome
คุณสมบัติของ Window ถ้าคุณใช้สิ่งนี้ "ปรับขนาดเส้นขอบ" สีขาวจะหายไป แต่คุณต้องกำหนดคุณสมบัติบางอย่างเพื่อให้ทำงานได้อย่างถูกต้อง
CaptionHeight:นี่คือความสูงของพื้นที่คำอธิบายภาพ (แถบส่วนหัว) ที่อนุญาตให้ใช้ Aero snap พฤติกรรมการคลิกสองครั้งเหมือนแถบชื่อเรื่องปกติ ตั้งค่านี้เป็น 0 (ศูนย์) เพื่อให้ปุ่มทำงาน
ResizeBorderThickness:นี่คือความหนาที่ขอบหน้าต่างซึ่งเป็นที่ที่คุณสามารถปรับขนาดหน้าต่างได้ ฉันใส่เป็น 5 เพราะฉันชอบตัวเลขนั้นและเพราะถ้าคุณใส่ศูนย์มันจะยากที่จะปรับขนาดหน้าต่าง
หลังจากใช้รหัสย่อนี้ผลลัพธ์จะเป็นดังนี้:
และตอนนี้ขอบสีขาวหายไปโดยไม่ต้องใช้งานResizeMode="NoResize"
และAllowsTransparency="True"
ยังแสดงเงาในหน้าต่าง
ต่อมาฉันจะอธิบายวิธีทำให้ปุ่มทำงาน (ฉันไม่ได้ใช้รูปภาพสำหรับปุ่ม) อย่างง่ายดายด้วยรหัสง่ายๆและสั้นฉันใหม่และฉันคิดว่าฉันสามารถโพสต์ลงใน codeproject ได้เพราะที่นี่ฉันไม่พบสถานที่ เพื่อโพสต์บทแนะนำ
อาจมีวิธีแก้ปัญหาอื่น (ฉันรู้ว่ามีวิธีแก้ปัญหาที่ยากและยากสำหรับ noobs เช่นฉัน) แต่วิธีนี้ใช้ได้กับโครงการส่วนตัว
นี่คือรหัสที่สมบูรณ์
<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>
ขอขอบคุณ!