标签: contextmenu

如何在Winforms中更改ToolStripItem的已检查状态?

当我查找它时,它们将其列为具有.Checked属性.但是在Visual Studio和msdn上,它都没有列出任何Checked属性的孩子.

ContextMenuStrip menu = new ContextMenuStrip ( );
var menuItem = menu.Items.Add ( "CheckedItem" );
//menuItem.Checked?
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

.net c# contextmenu toolstripitem winforms

12
推荐指数
1
解决办法
1万
查看次数

如何为菜单项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>
Run Code Online (Sandbox Code Playgroud)

android contextmenu menu menuitem drop-down-menu

12
推荐指数
4
解决办法
2万
查看次数

在上下文菜单中添加"Open Anaconda Prompt here"(Windows)

我想在我的上下文菜单(Windows 7和10)上添加一个选项,当我右键单击该文件夹时,将Anaconda Prompt打开到文件位置,但我找不到正确的注册表项.

这是我所知道的怎么做:

  • 将项添加到上下文菜单中,该菜单将在文件夹位置打开正常的命令窗口
  • 从cmd打开Anaconda提示符(运行他们的"activate.bat"文件)

我无法弄清楚的是如何将这些步骤组合到一个注册表项中,这样我就可以打开一个Anaconda Prompt然后在该提示符下cd到当前文件夹.但也许我正以错误的方式接近这一点.

来自互联网大师的帮助表示赞赏.

windows contextmenu registrykey anaconda

12
推荐指数
3
解决办法
7716
查看次数

上下文菜单未在 SwiftUI 中更新

我正在尝试设置一个.contextMenu带有切换值的按钮的SwiftUI Bool。上下文菜单的按钮文本应该在Bool切换时发生变化。但上下文菜单不会更新。有没有办法强制更新上下文菜单?

描述问题的示例代码:

import SwiftUI

struct Item: Identifiable {
    let id = UUID()
    let user: String
    var active: Bool
}

struct ContentView: View {
    @State var items: [Item] = [
        Item(user: "Daniel",active: false),
        Item(user: "Jack", active: true),
        Item(user: "John", active: true)
    ]
    
    @State var isOn : Bool = false
    var body: some View {
        List {
            ForEach(items) { item in
                VStack {
                    Text("\(item.user)")
                        
                    HStack {
                        Text("Active ? ")
                        Text(item.active ? "YES": "NO")
                    }
                }.contextMenu{
                    Button(action: …
Run Code Online (Sandbox Code Playgroud)

contextmenu swift swiftui swiftui-contextmenu

12
推荐指数
1
解决办法
2196
查看次数

动态添加项目到上下文菜单并设置单击操作

我有一个每5秒重新生成一次的字符串列表.我想创建一个上下文菜单,并使用此列表动态设置其项目.问题是我甚至不知道如何做到这一点并管理生成的每个项目的Click操作(应该使用与不同参数DoSomething("item_name")相同的方法).

我该怎么做?

谢谢你的时间.最好的祝福.

.net c# contextmenu

11
推荐指数
1
解决办法
2万
查看次数

如何在ContextMenu中为MenuItem设置CommandTarget?

(这个问题与另一个问题有关,但不同,我认为这需要在这里放置.)

这是一个(严重剪断)Window:

<Window x:Class="Gmd.TimeTracker2.TimeTrackerMainForm"
    xmlns:local="clr-namespace:Gmd.TimeTracker2"
    xmlns:localcommands="clr-namespace:Gmd.TimeTracker2.Commands"
    x:Name="This"
    DataContext="{Binding ElementName=This}">
    <Window.CommandBindings>
        <CommandBinding Command="localcommands:TaskCommands.ViewTaskProperties" 
                        Executed="HandleViewTaskProperties" 
                        CanExecute="CanViewTaskPropertiesExecute" />
    </Window.CommandBindings>
    <DockPanel>
<!-- snip stuff -->
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
<!-- snip more stuff -->
            <Button Content="_Create a new task" Grid.Row="1" x:Name="btnAddTask" Click="HandleNewTaskClick" />
        </Grid>
    </DockPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)

这是一个(严重剪断)UserControl:

<UserControl x:Class="Gmd.TimeTracker2.TaskStopwatchControl"
             xmlns:local="clr-namespace:Gmd.TimeTracker2"
             xmlns:localcommands="clr-namespace:Gmd.TimeTracker2.Commands"
             x:Name="This"
             DataContext="{Binding ElementName=This}">
    <UserControl.ContextMenu>
        <ContextMenu>
            <MenuItem x:Name="mnuProperties" Header="_Properties" Command="{x:Static localcommands:TaskCommands.ViewTaskProperties}" 
                      CommandTarget="What goes here?" />
        </ContextMenu>
    </UserControl.ContextMenu>
    <StackPanel>
        <TextBlock MaxWidth="100" Text="{Binding Task.TaskName, Mode=TwoWay}" TextWrapping="WrapWithOverflow" …
Run Code Online (Sandbox Code Playgroud)

wpf user-controls contextmenu

11
推荐指数
1
解决办法
1万
查看次数

默认ContextMenu样式 - WPF

我试图修改WPF中ContextMenu的默认样式.

通常,您可以使用"编辑控件"(模板)>"编辑复制"菜单选项在Expression Blend中创建默认值的副本.但是我无法解决如何使用ContextMenu执行此操作.知道我怎么能修改默认样式?

我试图禁用上下文菜单的左侧,通常显示图标.

谢谢!

更新: 也许我不清楚删除图标.例如,如果您有一个没有图标的上下文菜单,那么菜单的整个左侧就是浪费的空间.我想修改上下文菜单背景的默认样式以删除它.我只是不知道如何访问此默认样式.

.net wpf contextmenu

11
推荐指数
2
解决办法
2万
查看次数

WPF:空时隐藏ContextMenu

我有一个上下文菜单,通过数据绑定获取菜单项(我使用的是MVVM模式):

<ContextMenu ItemsSource="{Binding Path=ContextMenuItems}" />
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,在没有要显示的菜单项的情况下,我不希望上下文菜单显示.有没有办法实现这个目标?某种XAML触发可能吗?

当没有孩子时,我已经尝试捕获Opened事件,关闭上下文菜单.这工作但上下文菜单仍然闪烁...

wpf contextmenu mvvm

11
推荐指数
2
解决办法
1万
查看次数

带有自定义参数的EventHandler

我一直在寻找谷歌上大约一个小时的答案,但我没有找到我正在寻找的确切内容.

基本上,我有一个静态助手类,可以帮助我在我的应用程序中执行我经常做的很多事情.在这种情况下,我有一个名为"CreateDataContextMenu"的方法,它在给定的TreeView控件上创建一个上下文菜单.

public static void CreateDataContextMenu(Form parent, TreeView owner, string dataType)
{ ... }
Run Code Online (Sandbox Code Playgroud)

TreeView所有者是我将关联我的上下文菜单的控件.

然后我将Click事件添加到MenuItem,如下所示:

menuItemFolder.Click += new System.EventHandler(menuItemFolder_Click);
Run Code Online (Sandbox Code Playgroud)

我在这里遇到的问题是我想将"owner"和"dataType"作为参数传递给menuItemFolder_Click事件.

我尝试了以下方法:

menuItemFolder.Click += new System.EventHandler(menuItemFolder_Click(sender,e,owner,dataType));
(...)
private static void menuItemFolder_Click(object sender, System.EventArgs e, Treeview owner, string dataType)
{...}
Run Code Online (Sandbox Code Playgroud)

但它根本不起作用.我这样做可能很天真,但我对事件处理程序还不太满意.

我怎么能这样做?我的第一个猜测是我需要为这个特定情况创建自己的EventHandler.我是否朝着正确的方向前进?

c# contextmenu click event-handling

11
推荐指数
1
解决办法
2万
查看次数

c#WinForms - 单击某些项目后,使ContextMenu不会关闭

我正在使用System.Windows.Forms.ContextMenu.我想这样做,当你点击一些按钮时,它不会关闭菜单.现在我让它工作的地方,无论何时你点击一个,它将在相同的位置重新打开菜单.唯一的问题是它看起来很糟糕,因为你可以看到菜单闪烁.有没有更好的方法来做到这一点?

WPF的ContextMenu具有StaysOpen属性,但Win Forms没有.(有什么方法可以使用WPF的ContextMenu吗?)我不想使用ContextMenuStrip,它可以做到这一点,因为ContextMenu看起来好多了.

编辑:

我不打算将此标记为解决方案,因为这样做并不好.如果你需要做我的问题请求,一种方法是从WPF创建UserControl,然后将对象与上下文菜单放在其中,然后添加上下文菜单.现在因为它在WPF中,在按钮上你不想在点击时关闭菜单,在MenuItem上将属性StaysOpenOnClick设置为true.然后将这个UserControl放入你的WinForms应用程序.

c# contextmenu

11
推荐指数
2
解决办法
9737
查看次数