簡體   English   中英

UWP:UserControl覆蓋GridView項目單擊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM