C# 将通知徽章图标添加到外接程序中的功能区控件
我们正在制作powerpoint加载项。根据需求,我们需要对外接程序应用程序实现通知功能。我们的功能区控件中已经有一些功能区按钮。我们需要在功能区按钮中添加一个徽章按钮以及现有按钮 下面是我们正在查看的示例徽章按钮 我已经用“功能区按钮”、“拆分按钮”等进行了检查,但无法找到解决方案。这是一个可能的要求吗C# 将通知徽章图标添加到外接程序中的功能区控件,c#,winforms,powerpoint,office-interop,add-in,C#,Winforms,Powerpoint,Office Interop,Add In,我们正在制作powerpoint加载项。根据需求,我们需要对外接程序应用程序实现通知功能。我们的功能区控件中已经有一些功能区按钮。我们需要在功能区按钮中添加一个徽章按钮以及现有按钮 下面是我们正在查看的示例徽章按钮 我已经用“功能区按钮”、“拆分按钮”等进行了检查,但无法找到解决方案。这是一个可能的要求吗 有没有办法获取功能区按钮的位置?我已检查功能区按钮属性,但未找到任何位置属性。如果我们得到功能区按钮的位置,我们可以在功能区按钮附近显示通知面板。最好的方法可能是为图像提供回调,并在返回图像
有没有办法获取功能区按钮的位置?我已检查功能区按钮属性,但未找到任何位置属性。如果我们得到功能区按钮的位置,我们可以在功能区按钮附近显示通知面板。最好的方法可能是为图像提供回调,并在返回图像时呈现通知 请注意,您需要切换到功能区的XML定义,因为VisualStudio中的visual ribbon designer不支持图像回调/事件,据我所知,它只支持简单的单击事件。使用“导出为XML”菜单项将功能区导出为XML,然后定义自定义图像回调 这是一个有点相关的问题: 这样就可以了。请注意,当您想要更改通知时,需要强制重新绘制;为此,可以使用onload事件捕获功能区,并对其调用repaint方法 下面是一个几乎完整的示例,显示了功能区按钮上的自动递增数字 XML:
我想你可以定制彩带。谢谢你的解决方案。我会检查一下,然后把我的发现告诉你。
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"
onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab idMso="TabAddIns">
<group id="MyGroup" label="My Group">
<button id="MyButton" size="large" label="Button With Flag"
getImage="Ribbon_GetHelloImage"
onAction="Ribbon_SayHello" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
[ComVisible(true)]
public class Ribbon1 : Office.IRibbonExtensibility
{
private Office.IRibbonUI ribbon;
private Timer timer = new Timer();
public void Ribbon_Load(Office.IRibbonUI ribbonUI)
{
this.ribbon = ribbonUI;
timer.Interval = 1000;
timer.Start();
timer.Tick += (sender, args) => ribbon.InvalidateControl("MyButton");
}
public Bitmap Ribbon_GetHelloImage(Office.IRibbonControl ctrl)
{
var bitmap = new Bitmap(32, 32);
var flagGraphics = Graphics.FromImage(bitmap);
flagGraphics.DrawString(DateTime.Now.Second.ToString(),
new Font(FontFamily.GenericSansSerif, 10),
Brushes.Red, 12, 0);
return bitmap;
}
public void Ribbon_SayHello(Office.IRibbonControl ctrl)
{
MessageBox.Show("Hello", "Hello");
}