WidgetManager.UpdateWidget(WidgetUpdateRequestOptions) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
向小组件主机提供小组件的更新内容。
public:
virtual void UpdateWidget(WidgetUpdateRequestOptions ^ widgetUpdateRequestOptions) = UpdateWidget;
void UpdateWidget(WidgetUpdateRequestOptions const& widgetUpdateRequestOptions);
public void UpdateWidget(WidgetUpdateRequestOptions widgetUpdateRequestOptions);
function updateWidget(widgetUpdateRequestOptions)
Public Sub UpdateWidget (widgetUpdateRequestOptions As WidgetUpdateRequestOptions)
参数
- widgetUpdateRequestOptions
- WidgetUpdateRequestOptions
一个 WidgetUpdateRequestOptions 对象,该对象包含用于更新小组件的内容。
实现
示例
下面的代码示例演示 UpdateWidget 的典型用法。 WidgetManager.GetWidgetInfos() 调用 以获取与小组件提供程序关联的活动小组件的对象列表 WidgetInfo 。 对于每个小组件,将生成一个可视化模板和数据模板,并将其传递到 WidgetUpdateRequestOptions 对象中的 UpdateWidget 调用。
using namespace winrt;
using namespace Microsoft::Windows::Widgets;
using namespace Microsoft::Windows::Widgets::Providers;
class WidgetManagerOperations
{
void InitializeWidgets(hstring myWidgetId)
{
WidgetManager widgetManager = WidgetManager::GetDefault();
com_array<WidgetInfo> widgetInfos = widgetManager.GetWidgetInfos();
for (const auto& widgetInfo : widgetInfos)
{
if (widgetInfo.WidgetContext().IsActive())
{
WidgetUpdateRequestOptions options{myWidgetId};
options.Template(LR"({
"type": "AdaptiveCard",
"version": "1.5",
"body": [
{
"type": "TextBlock",
"text": "${greeting}"
}
]
})");
options.Data(LR"({
"greeting": "Hello"
})");
widgetManager.UpdateWidget(options);
}
}
}
}
注解
不会更新 WidgetUpdateRequestOptions 类中未设置的任何变量。 例如,如果只想更新小组件的数据,但想要保留现有可视模板和自定义状态,则仅 WidgetUpdateRequestOptions.Data 通过设置 属性,将更新小组件的数据,但不会修改模板和自定义状态。
UpdateWidget 还可用于通过为要清除的值设置空字符串来清除任何存储的值。 例如,如果要清除小组件的存储自定义状态,可以将 属性设置为 WidgetUpdateRequestOptions.CustomState 空字符串,这将在调用 UpdateWidget 后清除存储的自定义状态。
调用此函数以更新已删除的小组件、未与应用关联的小组件,或使用不存在的小组件 ID 将导致忽略更新。