public TranslatePopup(ITranslateService translateService, string text, string fromLanguage, string toLanguage, bool contentProtected) { InitializeComponent(); _translateService = translateService; _fromLanguage = fromLanguage == LANG_UND ? LANG_AUTO : fromLanguage; _toLanguage = toLanguage; Title = Strings.Resources.AutomaticTranslation; PrimaryButtonText = Strings.Resources.CloseTranslation; var tokenizedText = translateService.Tokenize(text, 1024); var fromName = LanguageName(fromLanguage, out bool rtl); var toName = LanguageName(toLanguage, out _); if (string.IsNullOrEmpty(fromName)) { SubtitleFrom.PlaceholderBrush = new SolidColorBrush(Colors.Transparent); SubtitleFrom.PlaceholderText = toName; } else { SubtitleFrom.PlaceholderText = fromName; } Subtitle.Text = string.Format(" \u2192 {0}", toName); foreach (var token in tokenizedText) { var block = new LoadingTextBlock { PlaceholderText = token, IsPlaceholderRightToLeft = rtl, IsTextSelectionEnabled = !contentProtected, Margin = new Thickness(0, Presenter.Children.Count > 0 ? -8 : 0, 0, 0) }; if (Presenter.Children.Count > 0) { block.EffectiveViewportChanged += Block_EffectiveViewportChanged; } Presenter.Children.Add(block); } Opened += OnOpened; }