Избавиться от границы кнопки в WPF? - PullRequest
19 голосов
/ 25 мая 2010

Я пытаюсь избавиться от границы кнопки и отображать только текст, однако отображается тонкая линия вокруг текста, даже если я установил borderThickness в 0 и borderbrush в прозрачный. альтернативный текст http://i45.tinypic.com/scywye.png

мой код 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"/>

Можно ли как-нибудь избавиться от границы кнопки?

Ответы [ 4 ]

47 голосов
/ 25 мая 2010

Вам необходимо переопределить 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>
11 голосов
/ 22 января 2013

Метод, который я недавно нашел наиболее полезным для этого, состоял в том, чтобы ваша кнопка использовала стиль панелей инструментов. При этом будут использоваться только изображение или текст, в то время как при наведении указателя мыши будут отображаться только границы кнопок.

<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" />
2 голосов
/ 25 мая 2010

Вам нужно создать новый шаблон для ваших кнопок.

Самый простой способ сделать это - открыть свой проект в Expression Blend, выбрать кнопку, а затем щелкнуть правой кнопкой мыши и выбрать «Изменить шаблон> Редактировать копию»... ".Это скопирует существующий шаблон в тот, который вы можете изменить.Проще создать его в словаре ресурсов.

Затем выберите шаблон и на вкладке Ресурс (справа от пользовательского интерфейса) выберите ButtonFocusVisual.Выберите вкладку «Свойства» и разверните раздел «Разное».Здесь есть поля BorderStyle и BorderThickness (среди прочих).Установите стиль на Нет.

1 голос
/ 10 июня 2011

Шаблоны не решат эту проблему, ваш единственный способ действия - изменить элемент управления WPF. Решение здесь:

Как удалить рамку ButtonChrome (при определении шаблона рамки)?

...