XAML中的图像按钮

时间:2014-03-04 02:32:08

标签: c# wpf xaml

有人可以帮忙吗。

我试图制作以下代码,以便我可以将我想要的图像注入此按钮样式。因为这个按钮样式在整个应用程序中使用

<Style TargetType="Button" x:Key="ButtonIsChecked">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="BorderBrush" Value="Transparent"/>
            <Setter Property="Focusable" Value="False"/>
            <Setter Property="Margin" Value="5"/>
            <Setter Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <CheckBox Content="{Binding Content}" Name="CheckBox_Logon" IsHitTestVisible="False" IsChecked="False">
                            <CheckBox.Template>
                                <ControlTemplate TargetType="{x:Type CheckBox}">
                                    <WrapPanel>
                                        <Image 
                                               Source="/AdminUltimate;component/Images/Icons/Windows.ico" 
                                               Width="15" Margin="3" 
                                               Visibility="{Binding IsChecked, Converter={StaticResource BoolToVis}, ElementName=DisableIcons}"/>
                                        <TextBlock Text="{Binding}" VerticalAlignment="Center"/>
                                    </WrapPanel>
                                </ControlTemplate>
                            </CheckBox.Template>
                        </CheckBox>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>

当前用法

<Button Content="Login" Style="{StaticResource ButtonIsChecked}"/>

我想做点什么

<Button Content="Login" Style="{StaticResource ButtonIsChecked}" imgsrc="Pathtoimage"/>

这可能吗?

1 个答案:

答案 0 :(得分:2)

通过Tag喜欢快速且易于使用来回馈依赖关系字符串;

<Style TargetType="Button" x:Key="ButtonIsChecked">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="BorderBrush" Value="Transparent"/>
            <Setter Property="Focusable" Value="False"/>
            <Setter Property="Margin" Value="5"/>
            <Setter Property="Tag" Value="/Default/Image/Path.jpg"/>
            <Setter Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <CheckBox Content="{Binding Content}" Name="CheckBox_Logon" IsHitTestVisible="False" IsChecked="False">
                            <CheckBox.Template>
                                <ControlTemplate TargetType="{x:Type CheckBox}">
                                    <WrapPanel>
                                        <Image 
                                               Source="{TemplateBinding Tag}" 
                                               Width="15" Margin="3" 
                                               Visibility="{Binding IsChecked, Converter={StaticResource BoolToVis}, ElementName=DisableIcons}"/>
                                        <TextBlock Text="{Binding}" VerticalAlignment="Center"/>
                                    </WrapPanel>
                                </ControlTemplate>
                            </CheckBox.Template>
                        </CheckBox>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>

然后执行like;

<Button Style="{StaticResource ButtonIsChecked}" Tag="/AdminUltimate;component/Images/Icons/Windows.ico"/>

希望这有帮助。