Windows phone 7 点击&;时无法在非文本区域激发事件;按住以显示WP7中的上下文菜单
我想将上下文菜单添加到WP7中的ListBox中,我修改了数据模板,如下所示:Windows phone 7 点击&;时无法在非文本区域激发事件;按住以显示WP7中的上下文菜单,windows-phone-7,listbox,contextmenu,Windows Phone 7,Listbox,Contextmenu,我想将上下文菜单添加到WP7中的ListBox中,我修改了数据模板,如下所示: <ListBox Name="lbx1" Margin="10,0,10,0" Height="435" ItemContainerStyle="{StaticResource ListBoxItemStyle1}" FontSize="40" Tap="lbx1_Tap" > <ListBox.ItemTemplate>
<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>
我只能使点击并按住事件显示文本上方的上下文菜单,非文本区域不能导致事件,我真的很困惑。有人能帮我吗?您的textbloc只会占用必要的空间。因此,stackpanel的宽度也仅为所需的宽度 可以将两者的“水平对齐”值设置为“拉伸”,使其占据整个宽度:
<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>
设置StackPanel背景属性。
当背景为透明时,无法工作,并且仅在stackpanel的非透明区域(如文本区域)触发hold事件。对不起,文本块中不包含空格,我的意思是我只能在文字上触发事件,但是我不能在同一个列表框中的项目位置上启动事件,并且不能使用非单词区域。这正是我要说的。由于您的文本块和StackPanel在您点击并按住时不会占用所有空间,因此您实际上是在StackPanel之外点击,因此事件永远不会引发,您的contextmenu也不会显示出来这很好。最后,我将ListboxItem样式“HorizontalContentAlignment”和“HorizontalAlignment”更改为“Stretch”。而且它很好用。谢谢你帮助我,肯尼斯。