2016-12-15 7 views
0

Ich habe eine UserControl innerhalb von jedem GridView Element. Es ist wie unten.UWP: UserControl überschreiben GridView Element klicken

<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> 

Die SymbolControl oben ist ein UserControl, ich änderte ihren ContentPresenter Stil

<ContentPresenter CornerRadius="40" 
        Height="40" 
        Width="40" 
        Background="Cyan" 
        x:Name="ContentPresenter" 
        Content="{TemplateBinding Content}" 
        Padding="0" /> 

So ist die einzige Taste in diesem UserControl der runden Form zu runden ist.

<Button Name="SymbolButton" 
      Content="{x:Bind PhoneticSymbolItem.Text}" 
      Style="{StaticResource VowelSymbolButton}" /> 

enter image description here

Meine Frage ist, dass die ItemClick="SymbolGridView_ItemClick" Event-Handler funktioniert nur, wenn ich um die Ecke des Gridview-Element klicken (der schwarze Teil oben). Wenn ich auf den runden Knopf klicke, funktioniert es nicht.

Ich weiß, dass es wahrscheinlich ist, weil die Schaltfläche oben auf dem GridView-Element ist und das Klicken auf die Schaltfläche nur das Schaltfläche-Klick-Ereignis auslöst. Aber die Medienressource, die ich einstellen möchte, ist in ItemsSource="{x:Bind Items}" der GridView. Ich weiß nicht, wie ich es an mein UserControl übergeben und vom Button-Click-Event verwenden soll.

Oder wenn es eine Möglichkeit gibt, das Button-Click-Ereignis zum GridView-Element zu öffnen, sollte es auch funktionieren. Ich hoffe meine Frage ist klar, irgendwelche Ideen?

+1

Wofür benötigen Sie die Schaltfläche, wenn Sie keine Klickereignisse verarbeiten möchten? –

Antwort

0

Versuchen Sie IsHitTestVisible = "False" zu Ihrem runden SymbolControl.

+0

Danke! Es ist genau das, wonach ich suche! Wenn die Eigenschaft gesetzt ist, wird die Schaltfläche das Mausklick-Ereignis nicht mehr "essen". –

Verwandte Themen