반응형
1. DpiDecorator class 추가
public class DpiDecorator : Decorator
{
public DpiDecorator()
{
Loaded += OnLoaded;
Unloaded -= OnLoaded;
}
private void OnLoaded(object sender, RoutedEventArgs e)
{
if (null != e)
e.Handled = true;
var source = PresentationSource.FromVisual(this);
if (null != source && null != source.CompositionTarget)
{
var matrix = source.CompositionTarget.TransformToDevice;
var dpiTransform = new ScaleTransform(1 / matrix.M11, 1 / matrix.M22);
if (dpiTransform.CanFreeze)
dpiTransform.Freeze();
LayoutTransform = dpiTransform;
}
}
}
2. XML에 DpiDecorator로 감싸줌
<local:DpiDecorator>
<Grid>
<TextBlock Text="With DPI decorator" FontSize="20"/>
<Button Content="Window" Click="btnOpenWindow_Click" Width="100" Height="50"/>
</Grid>
</local:DpiDecorator>
참고
https://github.com/mesta1/DPIHelper
반응형
'[====== Development ======] > C#' 카테고리의 다른 글
[WPF] Passwordbox 의 Focus를 끝으로 지정하는 Extention (2) | 2022.04.12 |
---|---|
[WPF] Exception이 발생해도 App이 죽지 않도록 하는 방법 (0) | 2022.04.05 |
[C#] Folder 선택 Dialog 기능 (0) | 2022.03.14 |
[C#] Send Struct data to MFC App by SendMessage (0) | 2022.03.11 |
[C#] exe 파일로 MainWindow의 Handle값 구하기 (0) | 2022.03.11 |