仅在使用XAML的Windows Phone中单击时更改按钮背景图像?

时间:2015-01-17 16:12:03

标签: xaml windows-phone-8

所以基本上我想要一个带有特定背景图像的按钮。

例如,当应用程序加载时,您会看到一个按钮,其背景图像为image1.png,然后单击它时,您会看到image2.png作为背景图像。然后再次单击时,背景图像将切换回image1.png。

尽管我已经在C#中完成了这项工作,但我想在XAML中完成它,因为每次单击按钮时它都会根据主题颜色自动亮起,而摆脱它的唯一方法是通过XAML。 / p>

这是我的代码所以fa:

<Button x:Name="Buttons" Content="" HorizontalAlignment="Left" Margin="155,0,0,69" BorderBrush="Transparent" Width="140"  Click="Button_Click" Height="141" VerticalAlignment="Bottom">
                <Button.Background>
                    <ImageBrush Stretch="Fill" ImageSource="/Assets/image1.png"/>
                </Button.Background>
            </Button>

提前致谢!

2 个答案:

答案 0 :(得分:0)

试试这个,

http://visualstudiomagazine.com/articles/2013/02/15/customize-windows-phone-togglebutton.aspx

此处,随SDK附带的ToggleButton已经模板化添加点击和未单击的图像。

带复选框的备用解决方案:

Creating own toggle button in WP8?

答案 1 :(得分:0)

VisualStudio 2017“空白应用程序”

XAML

        <Button x:Name="button" Content="Button1" HorizontalAlignment="Left" Margin="400,20,0,0" VerticalAlignment="Top" RenderTransformOrigin="-1.258,-5" Click="Button_Click" Height="80" Width="80"/>

C#(在按钮的属性中设置原始图像:右键单击->画笔->图像)

    private void Button1_Click(object sender, RoutedEventArgs e)
    {
        button1.Background = new ImageBrush { ImageSource = new BitmapImage(new Uri("ms-appx:/Images/timerg.png", UriKind.RelativeOrAbsolute)) };

    }

或C#

    private void Button1_Click(object sender, RoutedEventArgs e)
    {
            BitmapImage bmp = new BitmapImage();
            Uri u = new Uri("ms-appx:/Images/timer.png", UriKind.RelativeOrAbsolute);
            bmp.UriSource = u;
            // NOTE: change starts here
            Image i = new Image();
            i.Source = bmp;
            button1.Content = i;
    }