Files
Nitrox/Nitrox.Launcher/Models/Controls/SelectableRichTextBlock.cs
2025-07-06 00:23:46 +02:00

28 lines
806 B
C#

using System;
using Avalonia;
using Avalonia.Controls;
namespace Nitrox.Launcher.Models.Controls;
/// <inheritdoc cref="RichTextBlock"/>
public class SelectableRichTextBlock : SelectableTextBlock
{
protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
{
base.OnPropertyChanged(change);
if (change.Property == TextProperty)
{
Inlines?.Clear();
RichTextBlock.ParseTextAndAddInlines(Text ?? "", Inlines);
// If all text was just tags, set Text to empty. Otherwise, it will be displayed as fallback by Avalonia.
if (Inlines?.Count < 1)
{
Text = "";
}
}
}
protected override Type StyleKeyOverride { get; } = typeof(SelectableTextBlock);
}