标签: ribbon

从 Microsoft 功能区执行命令?

感谢本线程中提供的帮助和建议,我使用 Microsoft Ribbon 框架创建了我的第一个非 Delphi 功能区。

按照A.Bouchez 在该线程中发布的指南,我成功地编译了我的项目并看到了 Microsoft Ribbon 的运行情况。

但是,在执行命令时,我似乎无法让功能区响应输入。

我总是使用 TActionManager 来管理我的事件,因此我所需要做的就是将每个 TAction 从 TActionManager 链接到功能区。按照上面链接的教程,我尝试了以下方法但无济于事:

// actNew is the name of a TAction set in the TActionManager
procedure TfrmMain.actNewExecute(Sender: TObject);
begin
  ShowMessage('execute new event');
end;

procedure TfrmMain.CommandCreated(const Sender: TUIRibbon; const Command: TUICommand);
begin
  inherited;

  case Command.CommandId of
    cmdNew: // cmdNew was defined in the Ribbon Designer
    begin
      // link the ribbon commands to the TActions
      actNew.OnExecute(Command as TUICommandAction); // obviously will not work …
Run Code Online (Sandbox Code Playgroud)

delphi ribbon ribbon-control

5
推荐指数
1
解决办法
623
查看次数

如何将组添加到多个内置功能区选项卡(vsto)?

这是VS2010 + Office 2010加载项.我想要的只是在多个内置选项卡中添加一个按钮(或按钮组).例如,我的按钮应该在New Mail Message RibbonNew Appointment Ribbon中都可用.我尝试添加一个新选项卡(在可视设计器中),但似乎不起作用.按钮组显示在"新邮件"选项卡上,但不显示在"约会"选项卡上.顺便说一下,我正在使用以下ID:TabNewMailMessageTabAppointment.

c# outlook vsto ribbon outlook-addin

5
推荐指数
1
解决办法
3983
查看次数

Ribbon控件的WPF数据绑定

我有一个工作的动态菜单,它是绑定到由应用程序动态控制的分层项目集合的数据.以下参考是WPF声明:

        <Menu Grid.Row="1" Grid.ColumnSpan="2" ItemsSource="{Binding Actions}" Style="{StaticResource ResourceKey=dynamicMenu}">
       <Menu.Resources>
            <HierarchicalDataTemplate DataType="{x:Type wm:AppAction}" ItemsSource="{Binding Path=Items}">
                <HierarchicalDataTemplate.ItemContainerStyle>
                    <Style TargetType="MenuItem">
                        <Setter Property="IsCheckable" Value="{Binding IsCheckable}" />
                        <Setter Property="IsChecked" Value="{Binding IsChecked}" />
                        <Setter Property="Visibility" Value="{Binding Path=IsVisible, Converter={wc:BoolToCollapsedConverter}}"/>
                        <Setter Property="Command" Value="{Binding Command}" />
                        <Setter Property="Icon" Value="{Binding Image}" />
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding Text}" Value="">
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="{x:Type MenuItem}">
                                            <Separator HorizontalAlignment="Stretch" IsEnabled="False"/>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </HierarchicalDataTemplate.ItemContainerStyle>
                <StackPanel Orientation="Horizontal">
                    <Image Source="{Binding ImageSource}" />
                    <TextBlock Text="{Binding Text}" />
                </StackPanel>
            </HierarchicalDataTemplate>
        </Menu.Resources>
    </Menu>
Run Code Online (Sandbox Code Playgroud)

现在我想使用Microsoft Ribbon控件渲染这个底层菜单结构,最初使用RibbonTab和RibbonGroup为级别0和RibbonButton为级别1(每个选项卡上的单个组)构建它.

不幸的是由于某种原因它没有显示任何东西.这是我到目前为止所说的内容的宣言: …

data-binding wpf ribbon

5
推荐指数
1
解决办法
4337
查看次数

如何防止屏幕在平板电脑上自动旋转?

在下面的链接中,Microsoft描述了两种限制平板电脑上应用程序屏幕旋转的方法.

http://msdn.microsoft.com/en-ca/library/windows/apps/hh700342.aspx

发生的事情是德尔福的(XE3)TRibbon不能很好地处理旋转.它往往会挂起来.

正如所料,MS网站描述了如何从MS开发产品中做到这一点.我不知道如何在我的Delphi项目中做到这一点.

方法1:

将此添加到您的appxmanifest文件:

<InitialRotationPreference>
    <Rotation Preference="landscape"/>
    <Rotation Preference="landscapeFlipped"/>
</InitialRotationPreference>
Run Code Online (Sandbox Code Playgroud)

我还没有找到appxmanifest应该成为应用程序的一部分,所以我可以在delphi中执行此操作.

方法2:

用代码调用它:

 Windows.Graphics.Display.DisplayProperties.AutoRotationPreferences =
            Windows.Graphics.Display.DisplayOrientations.Landscape;
Run Code Online (Sandbox Code Playgroud)

要将其迁移到delphi,我需要知道API DLL信息,以便我可以做类似的事情.

有任何想法吗?

是否有一个COM对象或DLL可以让我们访问它?

delphi ribbon tablet screen-rotation

5
推荐指数
1
解决办法
3166
查看次数

Excel 2013 VSTO功能区和编辑控件

快速概述我有一个Excel AddIn目标Excel 2013.AddIn有一个自定义RibbonUI,其中包含几个包含工作簿特定值的只读EditBox.使用MDI接口,Excel 2007和2010中的相同AddIn工作正常,但使用2013及其SDI接口.

使用简单的VSTO AddIn,我添加了一个带有EditBox的简单RibbonUI.出于测试目的,我只是想让EditBox反映它出现的窗口的Workbook.Fullname.就像我能够找到的那样,RibbonUI是一个单例,并且没有明显的方法来控制每个工作簿/窗口上的任何编辑控件的值.如果我打开2个Excel工作簿并来回切换(更新Excel.Application的ActiveWorkbookChanged属性上的值),则两个工作簿始终反映最新值.更糟糕的是,只有一个事件会触发,但两个窗口都会更新.

问题的关键在于我无法找到一种方法来控制每个窗口/工作簿中编辑控件的值.我在Excel 2013中找到了单文档界面的编程,除了它没有提到,或提供有关如何执行它的任何参考,只需要你.

我稍后会尝试使用一些示例进行更新,但我想知道是否有人在Excel 2013下使用SDI解决了这个问题?很明显,2013年内置的Ribbon控件可以执行此操作(例如,字体设置),但是文档在如何从用户AddIn完成类似操作方面似乎非常稀疏.

c# vsto ribbon excel-2013

5
推荐指数
0
解决办法
814
查看次数

从 VBA 定义的宏创建 PowerPoint 加载项

所以我在 PowerPoint 演示文稿中创建了一个宏,我想让其他人可以轻松使用这个宏。从我收集到的信息来看,最好的方法是创建一个Add-in

我遇到了几篇文章,说明要执行以下操作,但我仍然遇到问题:

  1. 打开新的 PowerPoint 演示文稿
  2. 使用 VBA 创建宏
  3. 退出 VBA,并将演示文稿另存为 .ppam
  4. 在“开发人员”选项卡下,单击“PowerPoint 加载项”按钮
  5. 单击“添加新...”选项,然后浏览您最近创建的 .ppam 文件
  6. 点击加载
  7. 单击关闭
  8. 单击加载项
  9. 您现在应该会看到您的新加载项

我已经完成了上面提到的所有事情,甚至可以在我选择PowerPoint Add-Ins看到新的 Add-in 。我来这里是因为我找不到运行新加载项的方法,而且我不希望它在启动时自动加载或通过在幻灯片上创建按钮来干扰演示。相反,我希望允许用户从功能区运行此加载项。

想法?

macros powerpoint vba add-in ribbon

5
推荐指数
1
解决办法
4764
查看次数

Fluent RibbonTabItem 在设计器中不可见?

我正在使用 Fluent-Ribbons 在 wpf 中创建我的视图。为了更好地组织我的代码,我想将不同的 RibbonTabItems 放入它们自己的文件中。

问题是:设计器没有显示ribbontab的内容。我只看到空白页。

有没有办法让 RibbonTab 在设计器中可见?

c# wpf ribbon fluent-ribbon

5
推荐指数
1
解决办法
426
查看次数

版本 Spring Boot、Spring Cloud、Ribbon 不工作

我正在学习如何使用 Spring Boot 和 Spring Cloud 来使用微服务。我在选择 spring cloud 和 boot 版本时遇到问题 - 我无法使用注释,@RibbonClient因为我还没有找到依赖项。

我想使用最新版本的 spring cloud 和 spring boot,但我没有找到功能区依赖项。我想使用spring boot 2.4.1spring cloud 2.20.0.x

ribbon spring-boot spring-cloud

5
推荐指数
1
解决办法
9397
查看次数

有没有办法免费使用Office2007工具栏创建桌面应用程序?

我找到了好看的彩带(DotNetBar,DivElements,...)的几个控制集,但都需要至少100美元的许可证.是否有一个看起来像商业一样好的免费控件?

.net c# ribbon

4
推荐指数
1
解决办法
454
查看次数

在WPF功能区应用程序菜单中使用DataTemplate时,会出现其他嵌套级别

我正在使用Microsoft提供的WPF功能区控件.

问题在于,当我使用DataTemplate填充a时RibbonApplicationSplitMenuItem,我得到一个额外的嵌套级别,我认为不应该存在.

以下是相关的WPF代码:

<Window.Resources>
    <DataTemplate DataType="{x:Type cfg:PluginInfoConfigurationElement}" x:Key="GotoPluginAppMenuItem">
        <ribbon:RibbonApplicationMenuItem 
                                Header="{Binding Path=Key}"
                                ImageSource="{Binding Path=Image}"/>
    </DataTemplate>
</Window.Resources>

            <ribbon:RibbonApplicationMenu>
                <ribbon:RibbonApplicationSplitMenuItem x:Name="LoadPluginMenuItem" 
                   ItemsSource="{Binding Source={StaticResource NlpModel}, Path=AvailablePlugins}" 
                   Header="Plugins"
                   ItemTemplate="{StaticResource GotoPluginAppMenuItem}">
                </ribbon:RibbonApplicationSplitMenuItem>
                <ribbon:RibbonApplicationSplitMenuItem x:Name="LoadPluginMenuItem2" 
                                                       Header="Plugins">
                    <ribbon:RibbonApplicationMenuItem 
                                Header="FooPlugin"
                                ImageSource="Images/icon-32.png"/>
                    <ribbon:RibbonApplicationMenuItem 
                                Header="Invalid"
                                ImageSource="Images/icon-32.png"/>
                </ribbon:RibbonApplicationSplitMenuItem>
                <!-- Other items to fill the menu -->
            </ribbon:RibbonApplicationMenu>
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

使用DataTemplate http://img571.imageshack.us/img571/9915/screentemplate.png 使用数据模板.

我想要什么http://img43.imageshack.us/img43/9168/screendesired.png 没有模板.

如您所见,使用DataTemplate时会出现额外的嵌套级别.我怎么能防止这种情况?

.net wpf ribbon datatemplate

4
推荐指数
1
解决办法
912
查看次数