在metro风格的应用程序中以编程方式更改按钮的背景图像

时间:2012-08-11 21:14:01

标签: xaml windows-8 microsoft-metro windows-runtime

如何使用VS 2012在Metro风格应用中更改按钮的背景图像? 在Windows窗体中,按钮具有可以设置的BackgroundImage属性。 此功能是否适用于Metro Style应用程序?

在Windows窗体中,我可以在C#中执行以下操作:

btnImage.BackgroundImage = System.Drawing.Image.FromFile(“... \ Pictures \ flower.png”);

如何以编程方式更改Metro Style应用程序中按钮的背景图像?

1 个答案:

答案 0 :(得分:2)

非常简单,实际上,只需修改Button的XAML以包含结束标记,然后在其间删除图像控件,如下所示:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <Button HorizontalAlignment="Left" Margin="532,285,0,0" VerticalAlignment="Top" Height="135" Width="283">
        <Image Source="Assets/Logo.png" />
    </Button>
</Grid>

在上面的代码片段中,我将图像源指向Logo.png文件,该文件是C#/ XAML应用程序内置模板的一部分。

另一种方法是在Blend for Visual Studio中打开项目,将图像从Assets选项卡拖到设计图面上(确保在Objects和Timeline窗格中选中了所需的容器),然后右键 - 单击图像并选择Make into Control ...,然后选择Button控件。

此技术的唯一缺点是您没有获得内置Button控件具有的默认VisualStates。相反,Blend使用空的VisualStates为您定义样式,您可以根据需要设置样式。

希望有所帮助。