2

3 つの行を含むグリッドがあり、そのうちの 1 つに編集可能な TextBox が含まれています。グリッドは、キャンバス内を移動できるようにするドラッグ機能を提供する paretn 内にあります。これを有効にするには、IsHitTestVisible を false に設定して、マウス クリックが親オブジェクトに渡されるようにする必要があります。

問題は、これを行うと、表示されているヒット テストが True に設定されていても、グリッド内のテキスト ボックスを選択できないことです。

<Grid Background="{StaticResource NodeBackground}" IsHitTestVisible="True">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="2*"/>
                            <RowDefinition Height="1*"/>
                            <RowDefinition Height="2*"/>
                        </Grid.RowDefinitions>
                        <TextBox Text="{Binding Data}" Foreground="White" Background="Transparent" FontFamily="Consolas" FontSize="15" TextAlignment="Center" Grid.Row="1" BorderThickness="0" />
                    </Grid>

行ごとにヒット テスト プロパティを設定することは可能ですか? 2 つの空の行のいずれかがヒットした場合、クリックは引き続き親コンテナーに渡されますが、中央のテキスト ボックスを選択することはできますか?行?

乾杯。

4

1 に答える 1

1

ドラッグ/ドロップ コードは確かではありませんが、おそらくトリガーを使用できます。これは、アイテムをドラッグしている場合のみで、それ以外の場合は True ですIsHitTestVisibleFalse

補足として、私は過去に WPF の組み込みDragDrop機能とヒット テストを使用して問題を抱えていました。MouseEnterドラッグの追跡/MouseLeaveイベントなど、代わりに MouseEvents を使用する方がはるかに簡単だと思います

于 2011-09-30T12:50:36.777 に答える