0

嗨,我有那种按钮:

XAML:

...
<Window.Resources>
    <Style x:Key="NoChromeButton" TargetType="{x:Type Button}">
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
        <Setter Property="HorizontalContentAlignment" Value="Center"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="Padding" Value="1"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Grid x:Name="Chrome" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
                        <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Foreground" Value="#ADADAD"/>
                            <Setter Property="Opacity" TargetName="Chrome" Value="0.5"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Window.Resources>
...
<Button Name="aaa" Style="{DynamicResource NoChromeButton}" Margin="5" Height="30" Width="40" Click="Button_Click">
            <StackPanel>
                <Image Name="bbb" Source="C:\Users\Daniel\Desktop\WPF\Paint\skew.png"/>
            </StackPanel>
</Button>

C#:

private void Button_Click(object sender, RoutedEventArgs e)
{
    BitmapImage bmi = new BitmapImage(new Uri("C:\\Users\\Daniel\\Desktop\\WPF\\Paint\\skew2.png", UriKind.Relative));
    bbb.Source = bmi ;
}

当我单击按钮图像消失时,我尝试了其他几种方法来做到这一点,但我做不到。我搜索了这个论坛,但我没有找到任何可以真正帮助我的东西。

4

3 回答 3

0

您需要将UriKind.Absolute用于您的图像路径。

  BitmapImage bmi = 
      new BitmapImage(new Uri("C:\\Users\\Daniel\\Desktop\\WPF\\Paint\\skew2.png",
      UriKind.Absolute));
  bbb.Source = bmi ;
于 2013-04-27T17:19:18.943 回答
0

你还没有设置ContentPresenter Content属性。

于 2013-04-27T14:55:33.473 回答
0

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;
    }
于 2018-12-05T16:06:42.670 回答