WPF Visual Studio: Главное окно не масштабируется под масштаб экрана Windows
После переустановки Visual Studio главное окно в любых WPF проектах перестало масштабироваться под выбранный в Windows масштаб. У меня установлен масштаб экрана на 125% и раньше окно и весь текст в нем увеличивались в размерах. Сейчас же, именно главное окно остается такого же размера, как и при 100% масштаба. Как это исправить?
Единственное, что я сделал кроме переустановки, это установил значение по инструкции отсюда: ссылка
setx VSXAML_DISABLE_ON_DEMAND_RESOURCE_VALUES 1
Вот пример:
Масштаб интерфейса 125% Главное окно и диалоговое
размер обоих окон - Height="450" Width="800"
А так при масштабе 150%
И я напоминаю, что размер у окон ОДИНАКОВЫЙ.
Что с этим можно сделать?
Код от главного:
<Window x:Class="TestWpfApp.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:TestWpfApp"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800"
Background="DarkGray">
<Grid Background="#222222">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Button x:Name="btn" Grid.Row="1" Content="Button"/>
</Grid>
</Window>
Диалоговое:
<Window x:Class="TestWpfApp.Dialog"
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:TestWpfApp"
mc:Ignorable="d"
Title="Dialog" Height="450" Width="800" Opacity="0.5">
<Grid>
<TextBlock Text="Test Text" FontSize="25"/>
</Grid>
</Window>
Ответы (1 шт):
Для меня так и остается непонятным, почему во всех WPF проектах (включая создание новых) сбилось масштабирование главного окна. Я не могу считать проблему решенной, так как окно должно масштабироваться самостоятельно, как происходило до этого, ведь я ничего не менял и не делал.
Так или иначе я нашел локальное решение проблемы для конкретного текущего проекта.
Идея решения найдена здесь (спустя 2 дня поисков).
Итак, все, что нужно сделать, это создать новый файл манифеста приложения и добавить туда параметр gdiScaling.
Для этого нажимаем ПКМ на проекте в обозревателе решений > Добавить > Создать элемент > Файл манифеста приложения.
Как указано в примере, я назвал его GdiScaling.manifest и добавил туда необходимое мне содержимое:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
...
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<dpiAwareness>PerMonitorV2, unaware</dpiAwareness>
</asmv3:windowsSettings>
</asmv3:application>
...
</assembly>
После этого все заработало как надо.
Однако повторюсь, что для меня это является всего лишь обходом проблемы, которая возникла из ничего после переустановки Visual Studio.
Позже дополню ответ, если что-то ответят в поддержке среды разработки

