有没有可能以某种方式设置WinUI 3信息栏消息的IsTextSelectionEnabled="True"
属性,而不从source复制整个控件模板?
我尝试过一些setter,或者使用ContentTemplate添加自定义TextBlock,但没有成功,但这会导致操作按钮位于消息上方,这是我不希望的。
<InfoBar x:Name="errorBar" Severity="Error" IsOpen="False" VerticalAlignment="Bottom"
Margin="50" Loaded="ErrorBar_Loaded">
<InfoBar.ContentTemplate>
<DataTemplate x:DataType="x:String">
<TextBlock x:Name="Message"
Text="{x:Bind}"
IsTextSelectionEnabled="True"/>
</DataTemplate>
</InfoBar.ContentTemplate>
<InfoBar.ActionButton>
<Button Content="Action" Click="InfoBarButton_Click" />
</InfoBar.ActionButton>
</InfoBar>
1条答案
按热度按时间8ulbf1ek1#
如果您不想覆盖Xaml,则需要在代码隐藏中执行此操作。根据信息栏的源代码,我们可以知道消息的TextBlock的名称。它称为
Message
。因此,我们可以使用VisualTreeHelper从信息栏中获取TextBlock控件并更改其属性。我在这里做了一个样品,你可以参考一下:
主页面.Cs:
主页面.Xaml:
结果: