Ответ 1
Попробуйте это
<Button BorderThickness="0"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" >...
Я пытаюсь создать кнопку с изображением в ней и без рамки - так же, как кнопки панели инструментов Firefox, прежде чем навести на них курсор и увидеть полную кнопку.
Я пробовал настроить BorderBrush
на Transparent
, BorderThickness
на 0
, а также пробовал BorderBrush="{x:Null}"
, но вы все еще можете видеть контур кнопки.
Попробуйте это
<Button BorderThickness="0"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" >...
Возможно, вам придется изменить шаблон кнопки, это даст вам кнопку без фрейма, что бы так ни было, но также без какого-либо нажатия или отключенного эффекта:
<Style x:Key="TransparentStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="Transparent">
<ContentPresenter/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
И кнопка:
<Button Style="{StaticResource TransparentStyle}"/>
Что вам нужно сделать, так это:
<Button Name="MyFlatImageButton"
Background="Transparent"
BorderBrush="Transparent"
BorderThickness="0"
Padding="-4">
<Image Source="MyImage.png"/>
</Button>
Надеюсь, это то, что вы искали.
Изменить: Извините, забыл упомянуть, что если вы хотите видеть границу кнопки, когда вы наводите курсор на изображение, все, что вам нужно сделать, это пропустить Padding = "- 4".
Я не знаю, почему другие не указали, что этот вопрос дублируется с этим с принятым ответом.
Я цитирую здесь решение: вам нужно переопределить ControlTemplate
Button
:
<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>
Вы можете использовать гиперссылку вместо кнопки, например:
<TextBlock>
<Hyperlink TextDecorations="{x:Null}">
<Image Width="16"
Height="16"
Margin="3"
Source="/YourProjectName;component/Images/close-small.png" />
</Hyperlink>
</TextBlock>
Возможно, вы уже знаете, что установка вашей Button внутри ToolBar дает вам такое поведение, но если вы хотите, чтобы что-то, что будет работать во всех текущих темах с любой предсказуемостью, вам нужно будет создать новую контрольную таблицу.
Решение Prashant не работает с кнопкой не на панели инструментов, когда кнопка имеет фокус. Он также не работает на 100% с темой по умолчанию в XP - вы все равно можете видеть слабые серые границы, когда фон вашего контейнера белый.
Программно, вы можете сделать это:
btn.BorderBrush = new SolidColorBrush(Colors.Transparent);
Почему бы вам не установить оба Background & BorderBrush
тем же самым brush
<Style TargetType="{x:Type Button}" >
<Setter Property="Background" Value="{StaticResource marginBackGround}"></Setter>
<Setter Property="BorderBrush" Value="{StaticResource marginBackGround}"></Setter>
</Style>
<LinearGradientBrush x:Key="marginBackGround" EndPoint=".5,1" StartPoint="0.5,0">
<GradientStop Color="#EE82EE" Offset="0"/>
<GradientStop Color="#7B30B6" Offset="0.5"/>
<GradientStop Color="#510088" Offset="0.5"/>
<GradientStop Color="#76209B" Offset="0.9"/>
<GradientStop Color="#C750B9" Offset="1"/>
</LinearGradientBrush>