0

WP7 の ListBox にコンテキスト メニューを追加したいので、データ テンプレートを次のように変更します。

<ListBox Name="lbx1" Margin="10,0,10,0" Height="435"  ItemContainerStyle="{StaticResource ListBoxItemStyle1}" FontSize="40" Tap="lbx1_Tap" >
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <toolkit:ContextMenuService.ContextMenu>
                                        <toolkit:ContextMenu>
                                            <toolkit:MenuItem Header="Copy" Click="ListBoxGeneralCopy_Click"/>
                                        </toolkit:ContextMenu>
                                    </toolkit:ContextMenuService.ContextMenu>
                                    <TextBlock Text="{Binding .}" />
                                </StackPanel>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

タップアンドホールドイベントでテキストの上にコンテキストメニューを表示することしかできません。テキスト以外の領域ではイベントを発生させることができませんでした。本当に混乱しました。誰かが私を助けることができますか?

4

2 に答える 2

0

テキストブロックは、必要なだけのスペースしか占有しません。したがって、stackpanel も必要な幅だけになります。

両方の Horizo​​ntalAlignment-value を Stretch に設定して、幅全体を占めるようにすることができます。

<ListBox Name="lbx1" Margin="10,0,10,0" Height="435"  ItemContainerStyle="{StaticResource ListBoxItemStyle1}" FontSize="40" Tap="lbx1_Tap" >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel HorizontalAlignment="Stretch">
                <toolkit:ContextMenuService.ContextMenu>
                    <toolkit:ContextMenu>
                        <toolkit:MenuItem Header="Copy" Click="ListBoxGeneralCopy_Click"/>
                    </toolkit:ContextMenu>
                </toolkit:ContextMenuService.ContextMenu>
                <TextBlock Text="{Binding .}"  HorizontalAlignment="Stretch"/>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
于 2013-04-29T20:55:26.093 に答える
0

StackPanel の背景プロパティを設定します。背景が透明な場合は機能せず、ホールド イベントはテキスト領域などのスタックパネルの非透明領域でのみ発生します。

于 2013-11-26T14:34:51.233 に答える