WPF:ListBox.ItemTemplate在单击文本或图像时没有反应 wpf xaml



我是Xaml和WPF的新手。我使用下面的代码从RSS提要中提取按钮标题和图像。问题是,只有当用户点击边框时,按钮才会做出反应……当用户点击文本或图像时,它不会做出反应。

 <ListBox.ItemTemplate >
      <DataTemplate >
                    <Button  Background="{Binding C:AccentColors}" Width="400" Height="100" HorizontalAlignment="Left" >
                        <Grid Width="400" Height="100" >
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="10"/>
                                <ColumnDefinition Width="2*"/>
                            </Grid.ColumnDefinitions>
                            <Image Source="{Binding XPath=enclosure/@url}" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Top"  />
                            <TextBlock TextWrapping="Wrap" Text="{Binding XPath=title}" FontWeight="Bold" Grid.Column="2"/>
                        </Grid>
                    </Button>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

你必须在按钮中添加Click事件。

<Button  Background="{Binding C:AccentColors}" Width="400" Height="100" HorizontalAlignment="Left" Click="MethodNameHere".....

你还必须在windows c#文件

中创建并实现这个方法

常见的错误是有人将TextBlock放在按钮顶部而没有意识到这一点,因为TextBlock具有透明的背景。

从视觉上看,TextBlock的文本可能在Button之外,但由于TextBlock的对齐方式默认设置为拉伸,它填充了整个区域。

很难说这是不是你的情况…

<Grid>
   <Button Content="I'm not working" Margin="0,100,0,0" />
   <TextBlock Text="I'm in top left corner" />
<Grid />

如果你设置TextBlock。Background to Red,你的整个网格将是红色的

按钮接受点击。您需要一个处理程序,可以是命令绑定,或者如果您不使用MVVM -一个代码后面的方法:

<Button Click="ButtonBase_OnClick" 

处理程序看起来像这样:

private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
}

最新更新