如何在 WinUI3 的 C++ 中以编程方式设置堆栈面板的边框颜色?
How can I set a stack panel's border color programmatically in C++ in WinUI3?
我正在使用 C++ 中的 WinUI 3 开发一个项目,我想根据某些条件更改 XAML 控件(例如堆栈面板)的边框颜色。我试过在网上搜索它,但大多数答案都是用 c# 写的,有些是用 C++ 写的,我试过了,但没有成功。
例如:(“StackPanel”在xaml中定义)
StackPanel().BorderBrush(SolidColorBrush(ColorHelper::FromArgb(255, 255, 255, 255)));
然后会出现错误:
no instance of overloaded function matches the argument list
argument types are: (winrt::Windows::UI::Xaml::Media::SolidColorBrush)
object type is: winrt::Microsoft::UI::Xaml::Controls::StackPanel
还有一个我在 .cpp 文件中试过的:
StackPanel().BorderBrushProperty(SolidColorBrush(Colors::Black()));
错误是:
too many arguments in function call.
为什么会出现这些错误?
谁能帮我解决这个问题?或者有什么建议吗?
示例代码会很棒!
PS : 我对 WinUI 3 还是很陌生,尤其是在 C++ 方面(对 C++ 的研究并不多material)
如有任何帮助,我将不胜感激。
根据我所看到的实际错误(尽我所能复制您正在做的事情)是
Severity Code Description Project File Line Suppression State
Error C2664 'void Windows::UI::Xaml::Controls::StackPanel::BorderBrush::set(Windows::UI::Xaml::Media::Brush ^)': cannot convert argument 1 from 'Windows::UI::Xaml::Media::SolidColorBrush' to 'Windows::UI::Xaml::Media::Brush ^' App1 c:\repos\App1\MainPage.xaml.cpp 29
如果你像这样创建画笔auto brush = ref new SolidColorBrush(...);
并像这样 stackpanel->BorderBrush = brush;
将其传递给堆栈面板
您的错误应该会消失。
很明显,您获取堆栈面板的方式可能与我的不同,但关键是您应该能够将其设置为该值,只要您拥有正确形式的值即可 ref new
对象在这种情况下,看起来。
我正在使用 C++ 中的 WinUI 3 开发一个项目,我想根据某些条件更改 XAML 控件(例如堆栈面板)的边框颜色。我试过在网上搜索它,但大多数答案都是用 c# 写的,有些是用 C++ 写的,我试过了,但没有成功。
例如:(“StackPanel”在xaml中定义)
StackPanel().BorderBrush(SolidColorBrush(ColorHelper::FromArgb(255, 255, 255, 255)));
然后会出现错误:
no instance of overloaded function matches the argument list
argument types are: (winrt::Windows::UI::Xaml::Media::SolidColorBrush)
object type is: winrt::Microsoft::UI::Xaml::Controls::StackPanel
还有一个我在 .cpp 文件中试过的:
StackPanel().BorderBrushProperty(SolidColorBrush(Colors::Black()));
错误是:
too many arguments in function call.
为什么会出现这些错误?
谁能帮我解决这个问题?或者有什么建议吗?
示例代码会很棒!
PS : 我对 WinUI 3 还是很陌生,尤其是在 C++ 方面(对 C++ 的研究并不多material)
如有任何帮助,我将不胜感激。
根据我所看到的实际错误(尽我所能复制您正在做的事情)是
Severity Code Description Project File Line Suppression State
Error C2664 'void Windows::UI::Xaml::Controls::StackPanel::BorderBrush::set(Windows::UI::Xaml::Media::Brush ^)': cannot convert argument 1 from 'Windows::UI::Xaml::Media::SolidColorBrush' to 'Windows::UI::Xaml::Media::Brush ^' App1 c:\repos\App1\MainPage.xaml.cpp 29
如果你像这样创建画笔auto brush = ref new SolidColorBrush(...);
并像这样 stackpanel->BorderBrush = brush;
将其传递给堆栈面板
您的错误应该会消失。
很明显,您获取堆栈面板的方式可能与我的不同,但关键是您应该能够将其设置为该值,只要您拥有正确形式的值即可 ref new
对象在这种情况下,看起来。