2016-12-15 73 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

谢谢!这正是我正在寻找的!随着属性设置,按钮不会“吃”鼠标点击事件了。 –