WidgetManager.UpdateWidget(WidgetUpdateRequestOptions) 方法

定义

向小组件主机提供小组件的更新内容。

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 将导致忽略更新。

适用于