我在每个UserControl
项目中都有一个GridView
。就像下面一样。
<GridView Name="SymbolItemsGridView"
Grid.Column="0"
Background="#333333"
SelectionMode="None"
IsItemClickEnabled="True"
ItemsSource="{x:Bind Items}"
HorizontalAlignment="Stretch"
Margin="15,5,10,15"
ItemClick="SymbolGridView_ItemClick">
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:SymbolItem">
<local:SymbolControl Margin="10"/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
上面的SymbolControl
是UserControl
,我将其ContentPresenter
样式更改为round
<ContentPresenter CornerRadius="40"
Height="40"
Width="40"
Background="Cyan"
x:Name="ContentPresenter"
Content="{TemplateBinding Content}"
Padding="0" />
因此UserControl
中唯一的一个按钮是圆形的。
<Button Name="SymbolButton"
Content="{x:Bind PhoneticSymbolItem.Text}"
Style="{StaticResource VowelSymbolButton}" />
我的问题是ItemClick="SymbolGridView_ItemClick"
事件处理程序仅在我点击GridView项目的一角(上面的黑色部分)时才有效。如果我点击圆形按钮,它就不起作用。
我知道这可能是因为按钮位于GridView项目的顶部,单击该按钮只会触发按钮单击事件。但是我要设置的媒体资源位于GridView的ItemsSource="{x:Bind Items}"
中。我不知道如何将它传递给我的UserControl并被按钮点击事件使用。
或者,如果有一种方法可以将按钮单击事件弹出到GridView项目,它也可以正常工作。我希望我的问题很清楚,有什么想法吗?
答案 0 :(得分:0)
尝试 IsHitTestVisible =&#34; False&#34; 到您的圆形SymbolControl。