画像があり、境界線のないボタンを作成しようとしています.Firefoxのツールバーボタンのように、カーソルを合わせて完全なボタンが表示されるようにします.
を、に設定してみましたがBorderBrush
、も試しましたが、まだボタンの輪郭が見えます。Transparent
BorderThickness
0
BorderBrush="{x:Null}"
画像があり、境界線のないボタンを作成しようとしています.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>
ボタンをツールバー内に配置するとこの動作が得られることは既にご存知かもしれませんが、現在のすべてのテーマで何らかの予測可能性を備えたものが必要な場合は、新しいControlTemplateを作成する必要があります。
Prashantのソリューションは、ボタンにフォーカスがある場合、ツールバーにないボタンでは機能しません。また、XPのデフォルトのテーマでは100%機能しません。コンテナの背景が白の場合でも、かすかな灰色の境界線が表示されます。