侧面板关闭时 word 加载项不更新功能区
word add-in not updating ribbon when side panel is closed
嘿,我的 word 加载项有问题。
基本上我有一个色带和一个侧面板。当我单击功能区上的显示面板时,它会显示我的面板,而当我单击隐藏时,它现在会隐藏面板。
现在我遇到的问题是,当我单击加载项右上角的 'x' 按钮时,show/hide 按钮没有更改文本。
任何人都可以告诉我如何添加事件侦听器或类似的内容以关闭侧面板以更改文本吗?
namespace examplele_word
{
/// <summary>
/// Interaction logic for MainContainerPanel.xaml
/// </summary>
public partial class MainContainerPanel : UserControl
{
private WordDocInstanceController _controller;
public WordDocInstanceController controller {
get {
return this._controller;
}
set {
this._controller = value;
this.itemDetailsPanel.controller = value;
this.searchItemsPanel.controller = value;
this.loginPanel.controller = value;
}
}
public MainContainerPanel()
{
InitializeComponent();
}
public void showLoginPanel()
{
itemDetailsPanel.Visibility = Visibility.Hidden;
searchItemsPanel.Visibility = Visibility.Hidden;
loginPanel.Visibility = Visibility.Visible;
}
public void showSearchItemsPanel()
{
loginPanel.Visibility = Visibility.Hidden;
itemDetailsPanel.Visibility = Visibility.Hidden;
searchItemsPanel.resetPanel();
searchItemsPanel.Visibility = Visibility.Visible;
}
public void showItemDetailsPanel (ItemDTO item)
{
itemDetailsPanel.displayNewItem(item);
loginPanel.Visibility = Visibility.Hidden;
searchItemsPanel.Visibility = Visibility.Hidden;
itemDetailsPanel.Visibility = Visibility.Visible;
}
}
}
您可以处理 VisibleChanged
事件以确定最终用户何时关闭自定义任务窗格。但请注意,Office 应用程序会阻止您更改 VisibleChanged
事件处理程序中的某些自定义任务窗格属性,包括 Width
、Height
、Visible
和 DockPosition
.如果您尝试修改这些属性,您将收到 COMException
.
the show/hide button is not changing text
您有责任根据任务窗格状态更改功能区上的文本。功能区 UI 和自定义任务窗格未相互连接。
要完成这项工作,您需要调用 IRibbonUI.Invalidate or IRibbonUI.InvalidateControl 方法,该方法允许使功能区用户界面的一个或所有控件的缓存值无效。
在功能区回调中,您需要根据任务面板状态 return 适当的值。
在以下文章中阅读有关 Fluent UI(又名功能区 UI)的更多信息:
嘿,我的 word 加载项有问题。
基本上我有一个色带和一个侧面板。当我单击功能区上的显示面板时,它会显示我的面板,而当我单击隐藏时,它现在会隐藏面板。
现在我遇到的问题是,当我单击加载项右上角的 'x' 按钮时,show/hide 按钮没有更改文本。
任何人都可以告诉我如何添加事件侦听器或类似的内容以关闭侧面板以更改文本吗?
namespace examplele_word
{
/// <summary>
/// Interaction logic for MainContainerPanel.xaml
/// </summary>
public partial class MainContainerPanel : UserControl
{
private WordDocInstanceController _controller;
public WordDocInstanceController controller {
get {
return this._controller;
}
set {
this._controller = value;
this.itemDetailsPanel.controller = value;
this.searchItemsPanel.controller = value;
this.loginPanel.controller = value;
}
}
public MainContainerPanel()
{
InitializeComponent();
}
public void showLoginPanel()
{
itemDetailsPanel.Visibility = Visibility.Hidden;
searchItemsPanel.Visibility = Visibility.Hidden;
loginPanel.Visibility = Visibility.Visible;
}
public void showSearchItemsPanel()
{
loginPanel.Visibility = Visibility.Hidden;
itemDetailsPanel.Visibility = Visibility.Hidden;
searchItemsPanel.resetPanel();
searchItemsPanel.Visibility = Visibility.Visible;
}
public void showItemDetailsPanel (ItemDTO item)
{
itemDetailsPanel.displayNewItem(item);
loginPanel.Visibility = Visibility.Hidden;
searchItemsPanel.Visibility = Visibility.Hidden;
itemDetailsPanel.Visibility = Visibility.Visible;
}
}
}
您可以处理 VisibleChanged
事件以确定最终用户何时关闭自定义任务窗格。但请注意,Office 应用程序会阻止您更改 VisibleChanged
事件处理程序中的某些自定义任务窗格属性,包括 Width
、Height
、Visible
和 DockPosition
.如果您尝试修改这些属性,您将收到 COMException
.
the show/hide button is not changing text
您有责任根据任务窗格状态更改功能区上的文本。功能区 UI 和自定义任务窗格未相互连接。
要完成这项工作,您需要调用 IRibbonUI.Invalidate or IRibbonUI.InvalidateControl 方法,该方法允许使功能区用户界面的一个或所有控件的缓存值无效。
在功能区回调中,您需要根据任务面板状态 return 适当的值。
在以下文章中阅读有关 Fluent UI(又名功能区 UI)的更多信息: