Избавиться от границы кнопки в WPF?
Я пытаюсь избавиться от границы кнопки и отображать только текст, однако отображается тонкая линия вокруг текста, даже если для свойства borderThickness задано значение 0, а для кисти - прозрачного.
мой код xaml для кнопки сохранения:
<Button Content="save" Name="btnSaveEditedText"
Background="Transparent"
Foreground="White"
FontFamily="Tw Cen MT Condensed"
FontSize="30"
Margin="-280,0,0,10"
Width="60"
BorderBrush="Transparent"
BorderThickness="0"/>
Можно ли как-нибудь избавиться от границы кнопки?
Ответы
Ответ 1
Вам нужно переопределить ControlTemplate кнопки:
<Button Content="save" Name="btnSaveEditedText"
Background="Transparent"
Foreground="White"
FontFamily="Tw Cen MT Condensed"
FontSize="30"
Margin="-280,0,0,10"
Width="60"
BorderBrush="Transparent"
BorderThickness="0">
<Button.Template>
<ControlTemplate TargetType="Button">
<ContentPresenter Content="{TemplateBinding Content}"/>
</ControlTemplate>
</Button.Template>
</Button>
Ответ 2
Метод, который я недавно нашел наиболее полезным для этого, заключался в том, чтобы ваша кнопка использовала стиль панелей инструментов. Это будет использовать только изображение или текст, только показывая границы кнопок на мыши.
<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
Content="save"
Name="btnSaveEditedText"
Background="Transparent"
Foreground="White"
FontFamily="Tw Cen MT Condensed"
FontSize="30"
Margin="-280,0,0,10"
Width="60"
BorderBrush="Transparent"
BorderThickness="0" />
Ответ 3
Вам нужно создать новый шаблон для ваших кнопок.
Самый простой способ сделать это - открыть проект в Expression Blend, выбрать кнопку, а затем щелкнуть правой кнопкой мыши и выбрать "Редактировать шаблон > Изменить копию..". Это копирует существующий шаблон в тот, который вы можете изменить. Это проще, если вы создадите его в словаре ресурсов.
Затем выберите шаблон и на вкладке Ресурс (справа от пользовательского интерфейса) выберите ButtonFocusVisual. Перейдите на вкладку "Свойства" и разверните раздел "Разное". Это поля BorderStyle и BorderThickness (среди прочих). Установите стиль "Нет".
Ответ 4
Шаблоны не решают эту проблему, ваш единственный способ действий - изменить элемент управления WPF. Решение находится здесь:
Как удалить границу ButtonChrome (при определении шаблона границы)?