Как установить размер кнопки в WPF, если используется сочетание клавиш? - PullRequest
1 голос
/ 19 февраля 2020

Я использую Margin = "3" и Padding = "5,1,5,1" с моими кнопками в wpf. Я понял, если я установил быструю клавишу как это:

<Button Content="_Decide types" Command="{Binding DecideTypesCommand}" 
                ToolTip="Select rows before pressing this button!"/>

Тогда эта кнопка увеличится. Кажется, _ использует некоторые дополнительные отступы. Могу ли я как-то это контролировать?

Обновление: enter image description here

Margin и Padding устанавливаются в App.xaml. Например, кнопка «Создать подсказку типа» правильно использует эти настройки. Кнопка «Первая» явно больше, чем кнопка «Создать подсказку типа». Если я уберу ярлык с кнопки «Первая», его размер будет нормальным.

Обновление 2: Здесь вы можете увидеть WrapPanel и под ним соответствующий стиль в App.xaml. На втором рисунке видно, что первая кнопка больше, и единственное отличие - _. Я пытался воссоздать проблему в пустом проекте, но там две кнопки имели одинаковый размер.

    <WrapPanel>
            <Button Content="_Decide types"/>
            <Button Content="Decide types"/>               
    </WrapPanel>


    <Style TargetType="Button">
        <Setter Property="Margin" Value="3"/>
        <Setter Property="Padding" Value="5,1"/>
        <Setter Property="VerticalAlignment" Value="Center"/>
    </Style>

enter image description here

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

Я понял, что существует активный стиль (не в App.xaml), см. Ниже. Если я удаляю этот стиль, то разница в размере исчезает между кнопкой с и без ярлыка. Я понятия не имею, как это связано со стилем TextBlock.

Спасибо за подсказки.

<Window.Resources>
    <Style TargetType="TextBlock">
        <Setter Property="Margin" Value="3"/>
    </Style>
</Window.Resources>
0 голосов
/ 20 февраля 2020

Даже используя обновление 2, я не получаю те же результаты, что и вы. Не имея доступа ко всем вашим XAML и стилям, невозможно определить причину этой проблемы.

enter image description here

С учетом сказанного я рекомендую Вы стандартизируете высоту кнопок, чтобы они были единообразными в вашем приложении. Поскольку у вас уже есть неявный стиль Button, вы можете добавить установщик для свойства Height.

Примерно так:

<Style TargetType="Button">
    <Setter Property="Margin" Value="3"/>
    <Setter Property="Padding" Value="5,1"/>
    <Setter Property="Height" Value="24"/> <-- whatever looks good for your app
</Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...