-
Notifications
You must be signed in to change notification settings - Fork 83
Expand file tree
/
Copy pathThemeOptionsPane.xaml.cs
More file actions
151 lines (121 loc) · 5.99 KB
/
ThemeOptionsPane.xaml.cs
File metadata and controls
151 lines (121 loc) · 5.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
namespace MarkdownTextBlockExperiment.Samples;
[ToolkitSampleOptionsPane(nameof(MarkdownTextBlockCustomThemeSample))]
public partial class ThemeOptionsPane : UserControl
{
private readonly MarkdownTextBlockCustomThemeSampleBase _sample;
private bool _isInitializing = true;
public ThemeOptionsPane(MarkdownTextBlockCustomThemeSampleBase sample)
{
_sample = sample;
this.InitializeComponent();
// Initialize control values from sample
LoadValuesFromSample();
_isInitializing = false;
}
private void LoadValuesFromSample()
{
// Headings
H1FontSizeBox.Value = _sample.H1FontSize;
H2FontSizeBox.Value = _sample.H2FontSize;
H3FontSizeBox.Value = _sample.H3FontSize;
H1ColorComboBox.SelectedIndex = _sample.H1ColorIndex;
// Text Styling
BoldFontWeightComboBox.SelectedIndex = _sample.BoldFontWeightIndex;
// Inline Code
InlineCodeFontSizeBox.Value = _sample.InlineCodeFontSize;
InlineCodePaddingBox.Value = _sample.InlineCodePadding;
InlineCodeCornerRadiusBox.Value = _sample.InlineCodeCornerRadius;
InlineCodeBorderThicknessBox.Value = _sample.InlineCodeBorderThickness;
InlineCodeColorComboBox.SelectedIndex = _sample.InlineCodeColorIndex;
InlineCodeBackgroundColorComboBox.SelectedIndex = _sample.InlineCodeBackgroundColorIndex;
InlineCodeBorderColorComboBox.SelectedIndex = _sample.InlineCodeBorderColorIndex;
// Code Block
CodeBlockPaddingBox.Value = _sample.CodeBlockPadding;
CodeBlockCornerRadiusBox.Value = _sample.CodeBlockCornerRadius;
CodeBlockBorderThicknessBox.Value = _sample.CodeBlockBorderThickness;
CodeBlockFontComboBox.SelectedIndex = _sample.CodeBlockFontIndex;
CodeBlockBackgroundColorComboBox.SelectedIndex = _sample.CodeBlockBackgroundColorIndex;
CodeBlockBorderColorComboBox.SelectedIndex = _sample.CodeBlockBorderColorIndex;
// Quote
QuoteBorderWidthBox.Value = _sample.QuoteBorderWidth;
QuotePaddingBox.Value = _sample.QuotePadding;
QuoteCornerRadiusBox.Value = _sample.QuoteCornerRadius;
QuoteColorComboBox.SelectedIndex = _sample.QuoteColorIndex;
// Table
TableCellPaddingBox.Value = _sample.TableCellPadding;
TableBorderThicknessBox.Value = _sample.TableBorderThickness;
// Lists
ListBulletSpacingBox.Value = _sample.ListBulletSpacing;
ListGutterWidthBox.Value = _sample.ListGutterWidth;
// Horizontal Rule
HorizontalRuleThicknessBox.Value = _sample.HorizontalRuleThickness;
HorizontalRuleMarginBox.Value = _sample.HorizontalRuleMargin;
// Images
ImageMaxWidthBox.Value = _sample.ImageMaxWidth;
ImageMaxHeightBox.Value = _sample.ImageMaxHeight;
ImageStretchComboBox.SelectedIndex = _sample.ImageStretchIndex;
}
private void SyncValuesToSample()
{
// Headings
_sample.H1FontSize = H1FontSizeBox.Value;
_sample.H2FontSize = H2FontSizeBox.Value;
_sample.H3FontSize = H3FontSizeBox.Value;
_sample.H1ColorIndex = H1ColorComboBox.SelectedIndex;
// Text Styling
_sample.BoldFontWeightIndex = BoldFontWeightComboBox.SelectedIndex;
// Inline Code
_sample.InlineCodeFontSize = InlineCodeFontSizeBox.Value;
_sample.InlineCodePadding = InlineCodePaddingBox.Value;
_sample.InlineCodeCornerRadius = InlineCodeCornerRadiusBox.Value;
_sample.InlineCodeBorderThickness = InlineCodeBorderThicknessBox.Value;
_sample.InlineCodeColorIndex = InlineCodeColorComboBox.SelectedIndex;
_sample.InlineCodeBackgroundColorIndex = InlineCodeBackgroundColorComboBox.SelectedIndex;
_sample.InlineCodeBorderColorIndex = InlineCodeBorderColorComboBox.SelectedIndex;
// Code Block
_sample.CodeBlockPadding = CodeBlockPaddingBox.Value;
_sample.CodeBlockCornerRadius = CodeBlockCornerRadiusBox.Value;
_sample.CodeBlockBorderThickness = CodeBlockBorderThicknessBox.Value;
_sample.CodeBlockFontIndex = CodeBlockFontComboBox.SelectedIndex;
_sample.CodeBlockBackgroundColorIndex = CodeBlockBackgroundColorComboBox.SelectedIndex;
_sample.CodeBlockBorderColorIndex = CodeBlockBorderColorComboBox.SelectedIndex;
// Quote
_sample.QuoteBorderWidth = QuoteBorderWidthBox.Value;
_sample.QuotePadding = QuotePaddingBox.Value;
_sample.QuoteCornerRadius = QuoteCornerRadiusBox.Value;
_sample.QuoteColorIndex = QuoteColorComboBox.SelectedIndex;
// Table
_sample.TableCellPadding = TableCellPaddingBox.Value;
_sample.TableBorderThickness = TableBorderThicknessBox.Value;
// Lists
_sample.ListBulletSpacing = ListBulletSpacingBox.Value;
_sample.ListGutterWidth = ListGutterWidthBox.Value;
// Horizontal Rule
_sample.HorizontalRuleThickness = HorizontalRuleThicknessBox.Value;
_sample.HorizontalRuleMargin = HorizontalRuleMarginBox.Value;
// Images
_sample.ImageMaxWidth = ImageMaxWidthBox.Value;
_sample.ImageMaxHeight = ImageMaxHeightBox.Value;
_sample.ImageStretchIndex = ImageStretchComboBox.SelectedIndex;
}
private void OnValueChanged(Microsoft.UI.Xaml.Controls.NumberBox sender, Microsoft.UI.Xaml.Controls.NumberBoxValueChangedEventArgs args)
{
if (_isInitializing) return;
SyncValuesToSample();
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (_isInitializing) return;
SyncValuesToSample();
}
private void ResetTheme_Click(object sender, RoutedEventArgs e)
{
_sample.ResetToDefaults();
_isInitializing = true;
LoadValuesFromSample();
_isInitializing = false;
}
}