using Microsoft.UI.Xaml.Media; namespace XFEEDToolBox.Controls; public sealed class BilingualText : UserControl { public static readonly DependencyProperty TextProperty=DependencyProperty.Register(nameof(Text),typeof(string),typeof(BilingualText),new PropertyMetadata("",Changed)); public static readonly DependencyProperty OriginalProperty=DependencyProperty.Register(nameof(Original),typeof(string),typeof(BilingualText),new PropertyMetadata("",Changed)); public string Text{get=>(string)GetValue(TextProperty);set=>SetValue(TextProperty,value);} public string Original{get=>(string)GetValue(OriginalProperty);set=>SetValue(OriginalProperty,value);} private readonly TextBlock primary=new(){TextWrapping=TextWrapping.Wrap,FontWeight=Microsoft.UI.Text.FontWeights.SemiBold}; private readonly TextBlock original=new(){TextWrapping=TextWrapping.Wrap,FontSize=11,Foreground=new SolidColorBrush(Windows.UI.Color.FromArgb(255,145,163,185))}; public BilingualText(){var panel=new StackPanel{Spacing=3};panel.Children.Add(primary);panel.Children.Add(original);Content=panel;} private static void Changed(DependencyObject sender,DependencyPropertyChangedEventArgs args)=>((BilingualText)sender).Update(); private void Update(){primary.Text=Text??"";original.Text=Original??"";original.Visibility=string.IsNullOrWhiteSpace(Original)||Original==Text?Visibility.Collapsed:Visibility.Visible;} }