[英]UWP: UserControl override GridView item click
我在每個GridView
項目中都有一個UserControl
。 就像下面。
<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}" />
我的問題是,僅當我單擊GridView項的角(上面的黑色部分)時, ItemClick="SymbolGridView_ItemClick"
事件處理程序才起作用。 如果單擊圓形按鈕,則無法使用。
我知道這可能是因為該按鈕位於GridView項的頂部,單擊該按鈕僅會觸發該按鈕單擊事件。 但是我要設置的媒體資源位於GridView的ItemsSource="{x:Bind Items}"
中。 我不知道如何將其傳遞給UserControl並由按鈕單擊事件使用。
或者,如果有一種方法可以將按鈕單擊事件彈出到GridView項,那么它應該也可以正常工作。 我希望我的問題很清楚,有什么想法嗎?
對您的Round SymbolControl嘗試IsHitTestVisible =“ False” 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.