2016-12-15 77 views
0

我在GridView項目中有一個UserControl。就像下面。UWP: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> 

以上SymbolControlUserControl,我改變了ContentPresenter風格輪

<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}" /> 

enter image description here

我的問題是,當我點擊GridView的項目(上面的黑色部分)的拐角處ItemClick="SymbolGridView_ItemClick"事件處理程序纔有效。如果我點擊圓形按鈕,它不起作用。

我知道這可能是因爲該按鈕位於GridView項目的頂部,並且單擊此按鈕只會觸發按鈕單擊事件。但是我想設置的媒體資源位於GridView的ItemsSource="{x:Bind Items}"中。我不知道如何將它傳遞給我的UserControl並使用按鈕單擊事件。

或者如果有一種方法可以將按鈕單擊事件彈出到GridView項目,它也應該可以工作。我希望我的問題很清楚,有什麼想法?

+1

如果你不想處理點擊事件,你需要什麼按鈕? –

回答

0

嘗試IsHitTestVisible =「假」到您的一輪SymbolControl。

+0

謝謝!這正是我正在尋找的!隨着屬性設置,按鈕不會「吃」鼠標點擊事件了。 –