private static MessageBoxResult ShowMessageInner(string text, string title, MessageDialogButton button, ShowMessageCallbacks doNotAskAgainLoadSave, Window owner = null) { var value = doNotAskAgainLoadSave?.Item1?.Invoke(); if (value != null) { return(value.Value); } FrameworkElement content = new SelectableBbCodeBlock { Text = text, Margin = new Thickness(0, 0, 0, 8) }; CheckBox doNotAskAgainCheckbox; if (doNotAskAgainLoadSave != null) { doNotAskAgainCheckbox = new CheckBox { Content = new Label { Content = "Don’t ask again" } }; content = new SpacingStackPanel { Spacing = 8, Children = { content, doNotAskAgainCheckbox } }; } else { doNotAskAgainCheckbox = null; } var dlg = new ModernDialog { Title = title, Content = new ScrollViewer { Content = content, MaxWidth = 640, MaxHeight = 520, VerticalScrollBarVisibility = ScrollBarVisibility.Auto, HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled }, MinHeight = 0, MinWidth = 0, MaxHeight = 640, MaxWidth = 800 }; if (owner != null) { dlg.Owner = owner; } dlg.Buttons = button.GetButtons(dlg); dlg.ShowDialog(); if (doNotAskAgainCheckbox != null) { doNotAskAgainLoadSave.Item2.Invoke(doNotAskAgainCheckbox.IsChecked == true ? dlg.MessageBoxResult : (MessageBoxResult?)null); } return(dlg.MessageBoxResult); }
public bool Text(Table v) { var text = GetText(v); if (text == null) { return(false); } var color = GetColor(v); var font = v[@"font"]?.ToString(); var fontSize = v[@"fontSize"].As(30d); if (!string.IsNullOrWhiteSpace(font)) { var fontPng = _data?.Get(font + ".png"); var fontTxt = _data?.Get(font + ".txt"); if (fontPng != null && fontTxt != null) { ActionExtension.InvokeInMainThread(() => { var bitmap = new FontObjectBitmap(fontPng, fontTxt); var charsPanel = new SpacingStackPanel { Spacing = v[@"spacing"].As(0d), Orientation = Orientation.Horizontal }; for (var i = 0; i < text.Length; i++) { var charBitmap = bitmap.BitmapForChar(text[i]); if (charBitmap == null) { return; } charsPanel.Children.Add(new Image { Source = charBitmap, Height = fontSize, Width = fontSize * charBitmap.Width / charBitmap.Height }); } ApplyParams(v, charsPanel); charsPanel.Effect = new AsTransparencyMask { OverlayColor = color }; _canvas.Children.Add(charsPanel); }); return(true); } } ActionExtension.InvokeInMainThread(() => { var block = v[@"bb"].As(false) ? new BbCodeBlock() : new TextBlock(); block.Text = text; block.Foreground = new SolidColorBrush(color); block.FontFamily = new FontFamily(font ?? @"Segoe UI"); block.FontWeight = FontWeight.FromOpenTypeWeight(v[@"fontWeight"].As(400)); block.FontStyle = v[@"fontItalic"].As(false) ? FontStyles.Italic : FontStyles.Normal; block.FontSize = fontSize; ApplyParams(v, block); _canvas.Children.Add(block); }); return(true); }