Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove default chrome from a WPF ToggleButton

Tags:

c#

.net

button

wpf

I have a ToggleButton defined like:

<ToggleButton Name="tbPinned"  Grid.Row="0" Grid.Column="3" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="1,0,0,-5" Height="30" Width="30" IsChecked="True" Checked="tbPinned_Checked" Unchecked="tbPinned_Unchecked" >
            <Image Source="/some_image.png" Stretch="Fill" />
         </ToggleButton>

However, I just want the button to be an image, not an image on a button. If I was using a normal Button I would just do something like Style="{DynamicResource NoChromeButton}" in the opening ToggleButton tag. But this does not work.

How can I mimic the whole NoChromeButton thing in a ToggleButton?

EDIT: Editted to include how I do it with regular Buttons:

<Button Style="{DynamicResource NoChromeButton}" Height="17" Margin="0,0,30,0" Name="btnMinimize" VerticalAlignment="Top" Grid.Column="1" Click="btnMinimize_Click" HorizontalAlignment="Right" Width="27" Padding="0" Visibility="Visible">
            <Image Source="/some_image.png" Stretch="None"  />
        </Button>
like image 339
kmarks2 Avatar asked Jun 26 '26 13:06

kmarks2


1 Answers

Just copy/paste this into new WPF project.

   <Window x:Class="SOChromeButton.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <Style x:Key="Chromeless" TargetType="{x:Type ToggleButton}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ToggleButton">
                        <Border BorderThickness="0" Width="54" Height="54">
                            <ContentPresenter/>
                        </Border>

                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Grid>
        <ToggleButton Style="{StaticResource Chromeless}" Name="tbPinned"  Grid.Row="0" Grid.Column="0" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="10,0,0,0"  IsChecked="True" >
            <Image Source="C:\Temp\info.png"></Image>
        </ToggleButton>
    </Grid> </Window>

Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!