我是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)
{
}