【发布时间】:2020-07-13 15:20:01
【问题描述】:
嗨,所以我正在尝试将 twitch 聊天推送到 TextBlock 中,它仅使用带有文本块的 mvvm 就可以正常工作,但现在我想实际为用户名着色,但不知道如何制作这个多行,因为我拥有它的方式现在它只是替换了以前的消息,所以我需要帮助才能继续前进。谢谢!\
Xaml:
<TextBlock Grid.Column="1" Grid.Row="1" TextWrapping="Wrap" Background="Gainsboro" FontSize="14" Text="" Margin="5,5,5,5">
<Run Text="{Binding Username, Mode=OneWay}" Foreground="{Binding UsernameColor, Mode=OneWay}" />
<Run Text="{Binding Message, Mode=OneWay}" />
</TextBlock>
事件:
private void Client_OnMessageReceived(object sender, OnMessageReceivedArgs e)
{
Username = $"{e.ChatMessage.DisplayName}:";
Message = e.ChatMessage.Message;
UsernameColor = e.ChatMessage.ColorHex;
}
所以问题是我希望它是多行的,而不是每次通过消息时都替换运行。
【问题讨论】:
-
@你想为每条消息创建一个新的
<Textblock>吗? -
@dbvega 不,我只想拥有一个文本块
-
那么问题是你需要让它多行吗?要解决多行问题,请将其更改为
<Run .../>然后<LineBreak/>然后<Run .../> -
只使用一个
TextBlock的原因是什么?这听起来更像是项目控件的用例。
标签: c# wpf binding textblock twitch