menuitem 相关问题

菜单项是菜单的子元素,其为用户提供查看和执行特定应用程序操作的手段。

获取选定的菜单项并在框架上显示相应的项目

我有3个条件(菜单中有3个菜单项)。 在这 3 项中,如何在 JFrame 打开并默认显示该菜单项的内容时立即选择该菜单项? 稍后,如果我们选择...

回答 2 投票 0

WPF TextBox MenuItem 在移动鼠标时失去焦点

在我的 WPF 应用程序中,我希望菜单项有一个文本框。我已经设法使用以下代码来做到这一点: 在我的 WPF 应用程序中,我希望菜单项有一个文本框。我已经设法使用以下代码来做到这一点: <Menu Height="23" HorizontalAlignment="Stretch" Name="MainMenu" VerticalAlignment="Top"> <MenuItem Header="File"> <MenuItem Header="Exit" Click="menuItemExit_Click" /> </MenuItem> <MenuItem Header="Settings"> <MenuItem Header="Some setting" IsCheckable="True" /> <Separator /> <MenuItem> <MenuItem.Header> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Label Content="Some value:" Margin="0,3,6,0" Padding="0" /> <TextBox Margin="0,0,0,6" Grid.Column="1" /> </Grid> </MenuItem.Header> </MenuItem> </MenuItem> </Menu> 此代码按我的预期显示菜单项,但如果我开始在文本框中输入一些值,然后将鼠标(而不是单击)移离文本框菜单项,则文本框将失去焦点,并且我无法继续输入,直到我再次单击文本框。如何实现与 WinForms 中的文本框菜单项相同的行为?也就是说,只有当用户在文本框外部单击或按 Tab 键时,文本框才会失去焦点。 提前致谢。 正如我所写,我不确定您如何使用菜单控件。 但也许这段代码可以帮助你或给你一个提示: <TextBox Margin="0,0,0,6" Grid.Column="1" PreviewLostKeyboardFocus="OnPreviewLostKeyboardFocus"/> 以及相应的方法: private void OnPreviewLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) { if (MainMenu.IsKeyboardFocusWithin) { e.Handled = true; } } 我知道这个答案可能为时已晚,无法帮助您,但也许它会帮助任何寻找此问题解决方案的人。 在菜单项上设置 Focusable=false 也可以。 它仍然允许单击它们并允许它们包含的控件获得焦点。 但是,它禁用了仅使用键盘导航菜单的功能,从而引入了可访问性问题。 可访问性问题可以通过一点创意来解决,方法是为每个菜单项提供一个可聚焦的元素。 例如: <MenuItem Focusable="False"> <MenuItem.Header> <StackPanel Orientation="Horizontal" Focusable="True" FocusVisualStyle="{x:Null}"> <TextBlock Text="Do something!" /> </StackPanel> </MenuItem.Header> </MenuItem> 需要 FocusVisualStyle="{x:Null}" 代码来隐藏否则会出现的虚线焦点(并且在菜单中看起来不合适)。 也许这有帮助: <MenuItem StaysOpenOnClick="True"> <MenuItem.Header> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Label Content="Some value:" Margin="0,3,6,0" Padding="0" /> <TextBox Margin="0,0,0,6" Grid.Column="1" /> </Grid> </MenuItem.Header> </MenuItem> 自定义 ComboBox 项目也面临同样的问题。在我的例子中,这个问题的根本原因是 ComboBoxItem 事件的 MouseEnter 处理程序: e.Handled = true; this.ParentComboBox?.NotifyComboBoxItemEnter(this); base.OnMouseEnter(e); 而且NotifyComboBoxItemEnter看起来像 if (!this.IsDropDownOpen || Mouse.Captured != this || !this.DidMouseMove()) return; this.HighlightedInfo = this.ItemInfoFromContainer((DependencyObject) item); if (this.IsEditable || item.IsKeyboardFocusWithin) return; item.Focus(); 所以它确实将焦点集中在鼠标输入上。我怀疑菜单项中可能有类似的东西(例如扩展子菜单)。 我通过重写自定义组合框项类上的 OnMouseEnter 来避免调用基本方法解决了这个问题。 接受的解决方案有效,但会阻止键盘导航。

回答 4 投票 0

SwiftUI 如何根据修饰符替换菜单项

在 SwiftUI 中,按住选项键时如何在 2 个菜单项之间切换 就像当您打开 Finder 文件菜单并按下选项键时,某些项目会交替出现 可悲的是我的方法...

回答 1 投票 0

程序加载期间添加的菜单项的 Vcl 样式问题

我有一个 Delphi 10.4.2 程序(32 位),其中在程序加载期间添加菜单项(Application.OnActivate 事件,编码为仅运行一次)。如果没有 vcl 样式,则会显示新项目

回答 3 投票 0

Drupal 中菜单项的“a”标签上的唯一 ID

我正在尝试在菜单项的“a”标签上生成唯一的 id,以便我可以实现 Popups API。 这就是我在 template.php 中的函数的样子: 函数 phptemplate_menu_item_link($li...

回答 1 投票 0

VB.Net 上下文菜单项在 Web 浏览器中单击不触发

我正在处理上下文菜单项,以便在单击上下文菜单项时显示消息框。当我创建自定义右侧时,上下文菜单项的单击事件将不会触发

回答 1 投票 0

在 MFC 中对菜单项使用透明 PNG 时出现问题

我被引导到这里的现有答案: https://stackoverflow.com/a/60222653/2287576 但我正在努力遵循该准则。这就是我所拥有的: CPng图像png; png.Load(IDB_PNG_MENU_REPORT,

回答 1 投票 0

win32 菜单项位图透明背景

我尝试完成的事情非常简单:将图像添加到菜单项。我正在使用 win32 API 用 C 进行编程。图像/位图显示,但背景为白色。我想要的是转...

回答 2 投票 0

下拉导航不适用于移动设备(JavaScript、HTML、CSS)

我使用 JS 和 SCSS 构建了一个导航。在桌面上它工作得很好,一些移动设备(如 Galaxy S10)也显示下拉菜单。但当我点击...时,大多数其他移动设备什么也不做。

回答 1 投票 0

父菜单项在悬停子菜单时悬停

我的网站 http://jointviews.com/ 带有标题菜单。关于我们和数字营销的标题菜单项在每个项目下都有子菜单。当我将鼠标悬停在下拉子菜单项上时,父菜单会返回...

回答 2 投票 0

在shinydashboard侧边栏中直接输入元素

我想知道是否可以修改以下闪亮的应用程序并将 sliderInput 放入侧边栏部分: 图书馆(闪亮的仪表板) 用户界面 <- dashboardPage( dashboardHeader(title = "DB mana...

回答 1 投票 0

无法在 C++/CLI 中从 System::Object 转换为 System::Windows::Forms::MenuItem

我正在处理我的 C++/CLI 项目,因为我正在添加带有单击事件的子菜单项。我在获取菜单项的文本时遇到问题,因为当我尝试这样做时: 调试::WriteLine("Smt...

回答 1 投票 0

c++ 无法从系统对象转换为菜单项

我正在开发我的 C++ 项目,因为我正在添加带有单击事件的子菜单项。我在获取菜单项的文本时遇到问题,因为当我尝试这样做时: 调试::WriteLine("SmtpEma...

回答 1 投票 0

R闪亮仪表板必须关闭childfull menuItem才能使sidebarItemExpanded正常工作

交叉发布到 RStudio 社区。 我正在开发一个闪亮的仪表板,并尝试让右侧边栏根据扩展的左侧边栏菜单项来显示不同的内容。 该项目...

回答 1 投票 0

动态添加 ToolStripMenuItems 到 MenuStrip (C#/ Winforms)

我已经实施了我的解决方案(基本解决方案),我很高兴。 问题是,当我使用“Add”方法将新项目添加到 ToolStripItemCollection 时,我得到了一些重载...有意义的重载是...

回答 5 投票 0

带图像的 WPF 菜单项

如何定义 MenuItem.Icon 以便将 MenuItemHeader 文本放置在菜单项图像下方?感谢帮助!

回答 4 投票 0

SwiftUI:更改 macOS 应用程序中的“关于视图”

我正在使用 SwiftUI 和新的应用程序生命周期构建 macOS 应用程序。 我很想更改“关于窗口”的内容(当您点击应用程序菜单中的“关于 DemoApp”时出现),但没有...

回答 4 投票 0

如何为Android菜单项添加行分隔线

我的菜单项变得更大,因此我想将它们分组并制作一个分隔线来分隔每个组。 我现在应该怎么做 ? 我的菜单项变得更大,因此我想将它们分组并制作一个分隔线来分隔每个组。 我现在该怎么办? <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!--group1--> <item android:id="@+id/action_addtag" android:title="@string/add_hashtag_string" app:showAsAction="never" /> <item android:id="@+id/action_block_list" android:title="Block" app:showAsAction="never" /> <item android:id="@+id/action_report_list" android:title="Report" app:showAsAction="never" /> <!--group2--> <item android:id="@+id/terms" android:title="Terms" app:showAsAction="never" /> <item android:id="@+id/feedback" android:title="FeedBack" app:showAsAction="never" /> <!--group3--> <item android:id="@+id/action_setting" android:title="Setting" app:showAsAction="never" /> </menu> 膨胀菜单时请务必致电MenuCompat.setGroupDividerEnabled(menu, true);,否则组将不会被分隔线分开! 示例: @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_activity_main, menu); MenuCompat.setGroupDividerEnabled(menu, true); return true; } 并确保您的菜单 xml 中有不同的组,例如: <menu> <group android:id="@+id/sorting" > <item android:id="@+id/action_sorting_new_old" android:title="@string/action_sorting_new_old"/> <item android:id="@+id/action_sorting_a_z" android:title="@string/action_sorting_a_z"/> </group> <group android:id="@+id/settings"> <item android:id="@+id/action_settings" android:title="@string/action_settings"/> </group> </menu> 您需要做的就是定义一个具有唯一 ID 的组,我已经检查了实现,如果组具有不同的 id,它将创建一个分隔符。 示例菜单,创建分隔符: <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> <group android:id="@+id/grp1"> <item android:id="@+id/navigation_item_1" android:checked="true" android:icon="@drawable/ic_home" android:title="@string/navigation_item_1" /> </group> <group android:id="@+id/grp2"> <item android:id="@+id/navigation_item_2" android:icon="@drawable/ic_home" android:title="@string/navigation_item_2" /> </group> 希望这有帮助 更新 对于菜单项也许你可以使用这个 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <item android:id="@+id/action_cart" android:title="cart" android:actionLayout="@layout/cart_update_count" android:icon="@drawable/shape_notification" app:showAsAction="always"/> </menu> actionLayout 文件将是 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="vertical"> <View android:id="@+id/divider" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/divider"/> <TextView android:id="@android:id/text" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?android:attr/selectableItemBackground" android:gravity="center_vertical" android:textAppearance="?attr/textAppearanceListItemSmall"/> </LinearLayout> 老问题,但上述答案对我不起作用(并且我反对为单个项目添加“组”)。起作用的是添加一个样式元素,如下所示: <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar"> <!-- .Light.DarkActionBar"> --> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">#17161B</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:dropDownListViewStyle">@style/PopupMenuListView</item>//<-add this </style> 参考文献 <style name="PopupMenuListView" parent="@style/Widget.AppCompat.ListView.DropDown"> <item name="android:divider">#dddddd</item> <item name="android:dividerHeight">1dp</item> </style> 在同一个 res/values/styles.xml 文件中。希望有帮助! 如果您需要在“溢出”菜单中添加垂直线(最右侧的省略号): 假设您已添加新的菜单资源文件,请执行以下操作。 对菜单项进行分组并为每个组分配唯一的 ID <group android:id="@+id/group1"> <item android:id="@+id/action_about" android:orderInCategory="100" android:title="@string/about" app:showAsAction="never" /> </group> <group android:id="@+id/group2"> <item android:id="@+id/action_settings" android:orderInCategory="200" android:title="@string/settings" app:showAsAction="never" /> </group> 当您在 Activity 的 oncreate 方法中膨胀菜单时: getMenuInflater().inflate(R.menu.main, menu);//inflate menu MenuCompat.setGroupDividerEnabled(menu, true);//add horizontal divider 对于 Android SDK 28+: 将具有 id (!) 的组添加到 xml 菜单文件中以进行分配。 <group android:id="@+id/id_0"> ... </group> 添加行代码。 @Override public boolean onCreateOptionsMenu(Menu menu) { ... menu.setGroupDividerEnabled( true ); // this line ... } 这对我来说非常有效... <item android:title="@string/divider" MetaJsoup:showAsAction="ifRoom|withText" /> <string name="divider">-------------</string>

回答 6 投票 0

wpf 菜单项的键盘快捷键

我正在尝试使用以下命令向 xaml 代码中的菜单项添加键盘快捷键 使用 Ctrl+O 但是...

回答 3 投票 0

WPF 上下文菜单设计。如何在WPF MenuItem中设置背景?

我创建这样的弹出菜单。 我创建这样的弹出菜单。 <DockPanel.ContextMenu> <ContextMenu Background="#CD252220" Opacity="0.95" Foreground="LightGray" BorderBrush="DarkGray"> <MenuItem Header="_Save Image..." x:Name="btSave" IsEnabled="False" Click="btSave_Click" Style="{StaticResource MyStyle}"> <MenuItem.Icon> <Image Source="icons/save.png" Width="16" Height="16" Style="{StaticResource IconStyle}"/> </MenuItem.Icon> </MenuItem> </ContextMenu> </DockPanel.ContextMenu> 为什么这个菜单的左侧是白色的??????它将是#CD252220颜色或透明,发髻不是白色!!!!!! 如何修复它? :) http://itrash.ru/idb/40e872e71346dcf9bd58ba8aec0b2a17/omenu.png.html - 菜单截图 附注XP下没问题。菜单是白色仅在Vista上(没有W7) 我找到解决方案了!您只需在样式定义部分设置属性 OverridesDefaultStyle ;) <Style x:Key="{x:Type ContextMenu}" TargetType="{x:Type ContextMenu}"> <Setter Property="OverridesDefaultStyle" Value="True"/> <Setter Property="SnapsToDevicePixels" Value="True"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ContextMenu}"> <Border Background="#CD222120" CornerRadius="7, 7, 8, 8" BorderBrush="DarkGray" BorderThickness="2" Opacity="0.96"> <StackPanel ClipToBounds="True" Orientation="Vertical" IsItemsHost="True" Margin="5,4,5,4"/> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style> <ControlTemplate x:Key="{x:Static MenuItem.TopLevelItemTemplateKey}" TargetType="{x:Type MenuItem}"> <Border Name="Border" > <Grid> <ContentPresenter Margin="6,3,6,3" ContentSource="Header" RecognizesAccessKey="True" /> </Grid> </Border> </ControlTemplate> 如果您要为上下文菜单声明自定义样式,这样所有操作系统都将相同。

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.