我有一个基于默认模板的 VS 扩展命令。它具有 CommandFlagTextChanges
和TogglePatternAvailable
. 根据配置设置,应检查其初始状态,但是,这似乎是不可能的。
这是我想在第一次加载时看到的:
创建菜单项后,我尝试在命令的构造函数中设置Checked
为:true
menuItem1 = new OleMenuCommand(ExecuteCommand1, _, BeforeQueryStatus, new CommandID(CommandSet, Command1Id));
menuItem1.Checked = true; // This does not work
我也尝试使用BeforeQueryStatus
来更改初始选中状态,但在打开“工具”菜单时似乎没有调用它。这可能是一个错误???:
private void BeforeQueryStatus(object sender, EventArgs e)
{
ThreadHelper.JoinableTaskFactory.Run(async delegate
{
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(package.DisposalToken);
menuItem1.Checked = true;
});
}
单击菜单项会触发一次,BeforeQueryStatus
然后检查状态,证明代码确实有效。
如何根据配置设置将菜单项的初始选中状态设置为 true,所以在代码中?