我是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>
答案 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设置为红色,则整个网格将为红色。