控件模板,用于显示为image.png的按钮

时间:2011-10-20 23:25:39

标签: wpf

我几天来一直在研究控制模板,我成功地将按钮更改为椭圆,但是当我想创建一个控件模板,按钮被显示为图像时,我不成功。如果有的话一个人可以知道,请帮助我。

1 个答案:

答案 0 :(得分:3)

以下xaml显示的按钮的ControlTemplate仅包含图片:

<Button>
    <Button.Template>
        <ControlTemplate>
            <Image Source="/arrow_down_blue.png" Stretch="None" />
        </ControlTemplate>
    </Button.Template>
</Button>

如果无法使其正常工作,请确保图像的路径有效。最简单的方法是通过右键单击解决方案资源管理器中的图像并将Resource设置为Build Action,将图像添加到解决方案并将其标记为Resource。然后,您可以在表单上使用所谓的包URI来引用该图像:

/FolderName/OtherFolderName/FileName.png

上面的路径是相对于当前项目的根目录。

还可以通过Style或通过将按钮的Template属性设置为StaticResource来设置ControlTemplate:

<Grid>
    <Grid.Resources>
        <ControlTemplate x:Key="ImageButtonTemplate">
            <Image Source="/arrow_down_blue.png" Stretch="None" />
        </ControlTemplate>

        <Style TargetType="Button" x:Key="ImageButtonStyle">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Image Source="/arrow_down_blue.png" Stretch="None" />
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Grid.Resources>

    <StackPanel>
        <Button Template="{StaticResource ImageButtonTemplate}" />

        <Button Style="{StaticResource ImageButtonStyle}" />

    </StackPanel>
</Grid>

有关如何向控件模板添加触发器的示例,请参见this question