InkD2DRenderer 类

实现 IInkD2DRenderer 接口。

IInkD2DRenderer 对象允许将墨迹笔划呈现到通用 Windows 应用的指定 Direct2D 设备上下文中,而不是默认的 InkCanvas 控件。

成员

InkD2DRenderer 类继承自 IUnknown 接口。 InkD2DRenderer 也具有以下类型的成员:

方法

InkD2DRenderer 类具有这些方法。

方法 说明
将墨迹笔划呈现到应用的指定 Direct2D 设备上下文。

Creation\Access 函数

使用类标识符 InkD2DRenderer 调用 CoCreateInstance 以检索对 对象的引用。

CoCreateInstance(__uuidof(InkD2DRenderer),
  nullptr,
  CLSCTX_INPROC_SERVER,
  IID_PPV_ARGS(&_spInkD2DRenderer));

示例

此代码片段来自 复杂墨迹书写示例 的“SceneComposer.cpp”文件,演示了如何将墨迹笔划集合呈现到 Direct2D 设备上下文中。

_inkRenderer->Render(strokes, _deviceResources->GetD2DDeviceContext());
strokes->Clear();

复杂 墨迹书写示例 的“InkRenderer.cpp”文件中的此代码片段显示了在上一个代码片段中调用的 Render 方法 () 调用 绘制方法来呈现 笔划。

void InkRenderer::Render(
    Platform::Collections::Vector<
        Windows::UI::Input::Inking::InkStroke^>^ strokes,
        Microsoft::WRL::ComPtr<ID2D1DeviceContext> d2dContext)
{
    HRESULT hr = S_OK;
    if (_spInkD2DRenderer != nullptr)
    {
        if (strokes != nullptr && strokes->Size > 0)
        {
            // Cast the stroke collection into IUnknown to call Inkd2dRenderer
            ComPtr<IUnknown> spUnkStrokes = 
                reinterpret_cast<IUnknown*>(reinterpret_cast<__abi_IUnknown*>(strokes));
            hr = _spInkD2DRenderer->Draw(d2dContext.Get(), spUnkStrokes.Get(), false);
            if (FAILED(hr))
            {
                DX::ThrowIfFailed(hr);
            }
        }
    }
}

要求

要求
最低受支持的客户端
Windows 10 [仅限桌面应用]
最低受支持的服务器
无受支持的版本
标头
Inkrenderer.h
IDL
Inkrenderer.idl
IID
IID_IInkD2DRenderer定义为 4044e60c-7b01-4671-a97c-04e0210a07a5

墨迹呈现器笔和触笔交互墨迹分析示例简单墨迹书写示例复杂墨迹书写示例