XAML에 WPF 코드 숨김을 추가하고 powershell 추가 형식을 사용하여 컴파일하려고했습니다. PowerBoots가 있지만 사용하고 싶지 않습니다. Embed하려고하는 코드는 here입니다. 나는 The PowershellGuy way 구현을 참조했지만 여전히 코드 숨김 파일을 사용해야합니다.PowerBoot를 사용하지 않고 powershell의 추가 형식을 사용하여 WPF Xaml을 컴파일하십시오.
Add-Type -AssemblyName presentationframework
[xml]$xaml = @'
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="350" Width="525" AllowsTransparency="True"
WindowStyle="None"
WindowState="Maximized" Topmost="False" IsHitTestVisible="False">
</Window>
'@
$reader=(New-Object Xml.XmlNodeReader $xaml)
$Form=[Windows.Markup.XamlReader]::Load($reader)
$Form.ShowDialog() | out-null
링크에서 코드 뒤에 코드는
protected override void OnRender(DrawingContext drawingContext)
{
base.OnRender(drawingContext);
var screenGeometry = new RectangleGeometry(new Rect(0, 0, ActualWidth, ActualHeight));
var excludeRectangle = new RectangleGeometry(new Rect(200, 200, 150, 150));
drawingContext.PushClip(CombinedGeometry.Combine(screenGeometry, excludeRectangle, GeometryCombineMode.Exclude, null));
drawingContext.PushOpacity(.8);
drawingContext.DrawRectangle(Brushes.Black, null, new Rect(0, 0, ActualWidth, ActualHeight));
drawingContext.Pop(); drawingContext.Pop();
}
감사합니다!
소리가 좋습니다. XAML없이 C# 코드를 임베드하는 것이 Xaml 자체보다 바람직하다고 생각합니다. JPBlanc과 JayKul 고맙습니다! – Deku