Событие SizeChanged не запускается - PullRequest
0 голосов
/ 12 июня 2018

Итак, я недавно исследовал событие SizeChanged, потому что я хочу, чтобы размер моего шрифта пропорционально масштабировался, и хотя я просмотрел много постов, ни одна из них не работает для меня - мой объект не запускается.

Вот мой код:

private void MainWindow_SizeChanged(object sender, SizeChangedEventArgs e) {
    welcomeTitleText.Text = "hi";
}

Он даже не использует размер окна, он просто изменяет текст, чтобы убедиться, что он запускается.Однако по какой-то причине это не работает.Есть идеи?

1 Ответ

0 голосов
/ 12 июня 2018

Убедитесь, что вы подписались на событие.Вы должны зарегистрировать обработчик для события, либо в коде, либо в xaml.

В примере кода:

public MainWindow()
{

    // This call is required by the designer.
    InitializeComponent();

    // Add any initialization after the InitializeComponent() call.
    this.SizeChanged += MainWindow_SizeChanged;
}

или в xaml:

<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"        
        mc:Ignorable="d"
    ...
    Loaded="AboutWindow_Loaded">
...

Такжеобратите внимание, что иногда событие sizeChanged не срабатывает, если бэкэнд wpf считает, что изменение слишком незначительное. См. Документацию для получения более подробной информации. .

Совет. Вы можете попробовать обернуть текст в Viewbox, при этом он автоматически изменит его до максимального размера заливки.Затем вы можете просто ограничить размер (т.е. максимальную ширину, максимальную высоту) поля просмотра (или его контейнера (я бы порекомендовал использовать сетку, а также видеть высоту столбца и строки, используя * (звезды) или pt, подробнее здесь)) для достижения разумного масштабирования. Например:

<Viewbox MaxHeight="50">
    <TextBlock>I'm Scaled Text</TextBlock>
</Viewbox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...