【问题标题】:How insert Image over a Button dynamically如何在按钮上动态插入图像
【发布时间】:2014-02-26 11:03:24
【问题描述】:

我有这个问题。

我有一个带有 4 个按钮的网格 (button1,button2,button3,button4)。

当我点击一个按钮时,我想显示一个来自按钮的图像,所以如果我点击 Button2,我必须在 Button2 上显示一个图像。

这是我的代码

<Grid x:Name="gridButton"
              Visibility="Visible">
            <Button Style="{DynamicResource GlassButton}" 
                Margin="50,0,0,306" 
                Name="buttonGioia" 
                Height="182" 
                HorizontalAlignment="Left"
                Width="414"
                Click="button_click">Gioia
            </Button>

            <Button Style="{DynamicResource GlassButton}" 
                Margin="0,0,50,306" 
                Name="buttonTristezza" 
                Height="182" 
                HorizontalAlignment="Right" 
                Width="414"
                Click="button_click">Tristezza
            </Button>

            <Button Style="{DynamicResource GlassButton}" 
                Margin="50,300,0,106" 
                Name="buttonPaura" 
                Height="182" 
                HorizontalAlignment="Left" 
                Width="414"
                Click="button_click">Paura
            </Button>

            <Button Style="{DynamicResource GlassButton}" 
                Margin="0,300,50,106" 
                Name="buttonRabbia" 
                Height="182"
                HorizontalAlignment="Right" 
                Width="414"
                Click="button_click">Rabbia
            </Button>
        </Grid>

我们能帮帮我吗?

【问题讨论】:

  • 显示图像后按钮是否仍可访问?

标签: c# wpf image button


【解决方案1】:

您似乎正在使用 WPF。您所要做的就是将图像设置为按钮内容。如果您需要 Text+Image,则必须在 Content 中放置一个容器,然后将标签和 Image 放入容器中。

将此代码放入 ButtonClick 事件中:

//Get the button instance that raised this event
Button Source = (Button)sender;

//Craete the Image isntance and set the image to be dispalyed
Image ButtonPicture = new Image();
ButtonPicture.BaseUri = "MyButtonPicture.jpg"

//Assign it to the buttons content
Source.Content = ButtonPicture;

【讨论】:

    【解决方案2】:

    根据你所说的“结束”,你可以这样做

    <Button Margin="50,300,0,106" 
            x:Name="buttonPaura" 
            Height="182" 
            HorizontalAlignment="Left" 
            Width="414"
            Click="button_click">
        <StackPanel>
            <Image x:Name="imagePaura" Source="your/image"  Width="414" Height="182"/>
            <Label>Content="Paura"</Label>
        </StackPanel>
    </Button>
    

    在你的 button_click 中

        private void button_click(object sender, RoutedEventArgs e)
        {
            var button = sender as Button;
            if (buttonPaura == button)
            {
                imagePaura.Visibility = System.Windows.Visibility.Visible;
            }
        }
    

    您应该使用 DataBinding 而不是后面的代码,但这只是一个建议

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多