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

时间:2015-06-03 11:46:51

标签: wpf xaml button

我是Xaml和WPF的新手。我正在使用以下代码从RSS提要中提取botton标题和图像。 只有当用户点击边框时botton才会做出反应的问题......当用户点击文字或图片时,它不会做出反应。

 <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>

3 个答案:

答案 0 :(得分:0)

按钮 获取点击次数。你需要一个处理程序,无论是命令绑定还是你没有使用MVVM - 代码隐藏方法:

<Button Click="ButtonBase_OnClick" 

处理程序将如下所示:

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

答案 1 :(得分:0)

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

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

并且您还必须在Window C#文件中创建和实现该方法

答案 2 :(得分:0)

常见的错误是有人将TextBlock放在按钮顶部而没有实现它,因为TextBlock具有透明背景。

从视觉上看,TextBlock的Text可能在Button外面,但由于TextBlock对齐默认设置为strech,因此它会填满整个区域。

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

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

如果将TextBlock.Background设置为红色,则整个网格将为红色。