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;}
}
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;}
}