【问题标题】:Cannot access XAML element from C++ code. WinUI 3 (WinUI project templates)无法从 C++ 代码访问 XAML 元素。 WinUI 3(WinUI 项目模板)
【发布时间】:2020-11-15 09:15:46
【问题描述】:

我正在学习一些小项目,但我不知道如何从 C++ 代码访问 XAML 元素。 你能帮我吗? 它说“无法确定要使用哪个重载函数实例”, 截图:https://pasteboard.co/JjjKCAT.png

谢谢 卢卡斯

【问题讨论】:

  • 你在使用 C++ 和 WinRT 模板库吗?
  • 它使用的是 WinUI 项目模板。 docs.microsoft.com/en-us/windows/apps/winui/winui3
  • WinUI 的文档说仅支持 C# 和 C++/WinRT(这是带有 WinRT 模板库的 C++ 的简写)。不支持 C++/CX(与 C++ 不同的编程语言,它是从 C++ 派生的)。您的代码是 C++(使用 WinRT)还是 C++/CX?
  • 我不熟悉使用 WinRT 的 C++。我熟悉使用 WPF 和 XAML 的 C#。我希望我可以为您指出合适的文档,但看来您已经在查看合适的文档了。可能会有另一个熟悉 WinUI 的 StackOverflow 成员加入。
  • @Bluekas 你需要调用ProgressRing1() 来检索它的值。

标签: c++ xaml winui winui-3


【解决方案1】:

在 XAML 中创建某些内容时,它会创建两个具有相同名称的方法,一个返回该对象并接受 0 个参数,另一个不返回任何内容(也称为 void)并接受一个该类型的元素。在您的情况下,如果您想检索该值,您需要执行以下操作:

void MainWindow::Button_Click_Ring(...)
{
    // Get the ProgressRing:
    const auto progressRing = ProgressRing1();

    // Set the ProgressRing:
    ProgressRing1(newValue /* the new value */);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-06
    • 2022-07-18
    • 2021-11-07
    • 2022-10-09
    • 2022-10-09
    • 2022-01-09
    • 2021-12-19
    • 2022-10-22
    相关资源
    最近更新 更多