所以我有一个复杂的上下文菜单。它没有menuitems。它也有单选按钮,底部有一个堆栈面板,它有一个整数减少框。
<Button.ContextMenu>
<ContextMenu>
<RadioButton Tag="30" Content="30 seconds" GroupName="adLength" Checked="adLength_Checked" IsChecked="True"/>
<RadioButton Tag="60" Content="1 minutes" GroupName="adLength" Checked="adLength_Checked"/>
<RadioButton Tag="90" Content="1 min 30 sec" GroupName="adLength" Checked="adLength_Checked"/>
<RadioButton Tag="120" Content="2 minutes" GroupName="adLength" Checked="adLength_Checked"/>
<RadioButton Tag="150" Content="2 min 30 sec" GroupName="adLength" Checked="adLength_Checked"/>
<RadioButton Tag="180" Content="3 minutes" GroupName="adLength" Checked="adLength_Checked"/>
<Separator/>
<MenuItem x:Name="advert_Auto" Header="Run Automatically" IsCheckable="true" StaysOpenOnClick="True"/>
<StackPanel Orientation="Horizontal">
<TextBlock>every</TextBlock>
<xctk:IntegerUpDown x:Name="advert_Time" Value="30" Minimum="15" Width="50" Margin="5,0" />
<TextBlock>min</TextBlock>
</StackPanel>
</ContextMenu>
</Button.ContextMenu>
<MenuItem>
对象可以选择staysopenonclick
;当有人点击该项目时,上下文菜单保持打开状态。 <RadioButton>
对象没有该选项,但无论如何它们都保持打开状态。
我遇到的问题是最后一项<StackPanel>
。当用户单击IntegerUpDown
的文本区域时,上下文菜单将关闭。这使得很难按原样使用该项目。有没有更好的方法来完成我在上下文菜单中尝试做的事情?有没有办法让用户点击菜单外的上下文菜单?
答案 0 :(得分:4)
只需将StackPanel
填入MenuItem
作为标题,并将StaysOpenOnClick
属性设置为true
。
<MenuItem StaysOpenOnClick="True">
<MenuItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock>every</TextBlock>
<TextBox Text="30" Width="50" Margin="5,0" />
<TextBlock>min</TextBlock>
</StackPanel>
</MenuItem.Header>
</MenuItem>