Skip to content

Commit a5c400a

Browse files
authored
Merge pull request #42 from slawor/fix/EntryEditorSizing
Fixed the sizing the entry editor to use more available space
2 parents 5c8c2ed + 8524ecf commit a5c400a

File tree

2 files changed

+31
-22
lines changed

2 files changed

+31
-22
lines changed

src/Moryx.Controls.Demo/Models/EntryClass.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public class EntryClass
2020
[Description("Represents a string"), DefaultValue("Some default")]
2121
public string ChainOfChars { get; set; }
2222

23+
[Description("This is a very description to reach the max value for the description part to test the ui behavior")]
2324
public EntrySubClass SubClass { get; set; }
2425

2526
public List<EntrySubClass> ListSubClass { get; set; }

src/Moryx.Controls/EntryEditor/EntryEditor.xaml

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
1313
xmlns:properties="clr-namespace:Moryx.Controls.Properties"
1414
xmlns:wpfToolkit="clr-namespace:Moryx.WpfToolkit;assembly=Moryx.WpfToolkit"
15+
xmlns:system="clr-namespace:System;assembly=mscorlib"
1516
mc:Ignorable="d" x:Name="UserControl" d:DesignHeight="300" d:DesignWidth="810">
1617
<UserControl.Resources>
1718
<wpfToolkit:BooleanToVisibilityConverter x:Key="ReBooleanToVisibilityConverter" TriggerValue="False" />
@@ -22,16 +23,18 @@
2223
<converter:EntryValueToVisibilityConverter x:Key="ValueToVisibilityConverter" />
2324
<converter:Base64StringLengthToByteLength x:Key="Base64StringLengthToByteLength" />
2425
<converter:TextToDelimiteredTextConverter x:Key="DelimiteredTextConverter" />
26+
<system:Double x:Key="MinWidth">200</system:Double>
27+
<system:Double x:Key="MaxWidth">600</system:Double>
2528

2629
<converter:ValueTypeTemplateSelector x:Key="ValueTypeTemplateSelector">
2730
<converter:ValueTypeTemplateSelector.CollectionTemplate>
2831
<DataTemplate DataType="controls:EntryViewModel">
29-
<StackPanel Orientation="Horizontal" Height="35">
32+
<StackPanel Orientation="Horizontal">
3033
<TextBlock Text="{Binding Value}"
3134
FontWeight="Bold" VerticalAlignment="Center"
3235
Visibility="{Binding SubEntries, Converter={StaticResource ReBooleanToVisibilityConverter}}" />
3336

34-
<EddieButton Width="120" Content="{x:Static properties:Strings.EntryEditor_Open}" EddieStyle="Green" Icon="{MdiShape Folder_Open}"
37+
<EddieButton Content="{x:Static properties:Strings.EntryEditor_Open}" EddieStyle="Green" Icon="{MdiShape Folder_Open}"
3538
VerticalAlignment="Center" Click="DelveIntoSubEntry"
3639
Visibility="{Binding Converter={StaticResource SubEntriesToVisibilityConverter}}" />
3740
</StackPanel>
@@ -40,7 +43,8 @@
4043

4144
<converter:ValueTypeTemplateSelector.StringTemplate>
4245
<DataTemplate DataType="controls:EntryViewModel">
43-
<EddieTextBox Width="200" HorizontalAlignment="Left"
46+
<EddieTextBox MinWidth="{StaticResource MinWidth}" MaxWidth="{StaticResource MaxWidth}" HorizontalAlignment="Left"
47+
TextWrapping="Wrap"
4448
Text="{Binding Value, Mode=TwoWay}" Watermark="{Binding DefaultValue}"
4549
IsEnabled="{Binding IsEditMode, ElementName=UserControl}"
4650
IsReadOnly="{Binding IsReadOnly}"
@@ -53,14 +57,14 @@
5357
<StackPanel Orientation="Horizontal"
5458
Visibility="{Binding SubEntries, Converter={StaticResource ReBooleanToVisibilityConverter}}">
5559

56-
<PasswordBox x:Name="HiddenPassword" Width="200" HorizontalAlignment="Left"
60+
<PasswordBox x:Name="HiddenPassword" Width="{StaticResource MinWidth}" HorizontalAlignment="Left"
5761
IsEnabled="{Binding IsEditMode, ElementName=UserControl}">
5862
<i:Interaction.Behaviors>
5963
<controls:PasswordBoxBehaviour Password="{Binding Value, Mode=TwoWay}" />
6064
</i:Interaction.Behaviors>
6165
</PasswordBox>
6266

63-
<EddieTextBox x:Name="VisiblePassword" Width="200" HorizontalAlignment="Left"
67+
<EddieTextBox x:Name="VisiblePassword" Width="{StaticResource MinWidth}" HorizontalAlignment="Left"
6468
Text="{Binding Value, Mode=TwoWay}" Watermark="{Binding DefaultValue}"
6569
IsEnabled="{Binding IsEditMode, ElementName=UserControl}"
6670
IsReadOnly="{Binding IsReadOnly}"
@@ -89,7 +93,8 @@
8993

9094
<converter:ValueTypeTemplateSelector.DropDownTemplate>
9195
<DataTemplate DataType="controls:EntryViewModel">
92-
<EddieComboBox ItemsSource="{Binding PossibleValues}" Width="300"
96+
<EddieComboBox ItemsSource="{Binding PossibleValues}"
97+
MinWidth="{StaticResource MinWidth}" MaxWidth="{StaticResource MaxWidth}"
9398
IsEnabled="{Binding IsEditMode, ElementName=UserControl}"
9499
IsReadOnly="{Binding IsReadOnly}"
95100
SelectedItem="{Binding Value, Mode=TwoWay}" />
@@ -99,14 +104,16 @@
99104
<converter:ValueTypeTemplateSelector.FilePickerTemplate>
100105
<DataTemplate DataType="controls:EntryViewModel">
101106
<StackPanel Orientation="Horizontal">
102-
<EddieTextBox Width="200" HorizontalAlignment="Left"
107+
<EddieTextBox MinWidth="{StaticResource MinWidth}" MaxWidth="{StaticResource MaxWidth}"
108+
TextWrapping="Wrap" HorizontalAlignment="Left"
103109
Text="{Binding Value, Mode=TwoWay}" Watermark="{Binding DefaultValue}"
104110
ToolTip="{Binding Value}"
105111
IsEnabled="{Binding IsEditMode, ElementName=UserControl}"
106112
IsReadOnly="{Binding IsReadOnly}"
107113
Visibility="{Binding SubEntries, Converter={StaticResource ReBooleanToVisibilityConverter}}" />
108114

109115
<EddieButton Margin="5,0,0,0" EddieStyle="Green" HorizontalAlignment="Left" Icon="{MdiShape Folder_Open}"
116+
MinWidth="140" Width="Auto"
110117
Content="{x:Static properties:Strings.EntryEditor_SelectFile}" Click="SelectFile" />
111118
</StackPanel>
112119
</DataTemplate>
@@ -115,38 +122,39 @@
115122
<converter:ValueTypeTemplateSelector.DirectoryPickerTemplate>
116123
<DataTemplate DataType="controls:EntryViewModel">
117124
<StackPanel Orientation="Horizontal">
118-
<EddieTextBox Width="200" HorizontalAlignment="Left"
119-
Text="{Binding Value, Mode=TwoWay}" Watermark="{Binding DefaultValue}"
125+
<EddieTextBox MinWidth="{StaticResource MinWidth}" MaxWidth="{StaticResource MaxWidth}" HorizontalAlignment="Left"
126+
TextWrapping="Wrap" Text="{Binding Value, Mode=TwoWay}" Watermark="{Binding DefaultValue}"
120127
ToolTip="{Binding Value}"
121128
IsEnabled="{Binding IsEditMode, ElementName=UserControl}"
122129
IsReadOnly="{Binding IsReadOnly}"
123130
Visibility="{Binding SubEntries, Converter={StaticResource ReBooleanToVisibilityConverter}}" />
124131

125132
<EddieButton Margin="5,0,0,0" EddieStyle="Green" HorizontalAlignment="Left" Icon="{MdiShape Folder_Open}"
133+
MinWidth="140" Width="Auto"
126134
Content="{x:Static properties:Strings.EntryEditor_SelectDirectory}" Click="SelectDirectory" />
127135
</StackPanel>
128136
</DataTemplate>
129137
</converter:ValueTypeTemplateSelector.DirectoryPickerTemplate>
130138

131139
<converter:ValueTypeTemplateSelector.ClassTemplate>
132140
<DataTemplate DataType="controls:EntryViewModel">
133-
<EddieButton Width="120" EddieStyle="Green" HorizontalAlignment="Left" Icon="{MdiShape Folder_Open}"
141+
<EddieButton EddieStyle="Green" HorizontalAlignment="Left" Icon="{MdiShape Folder_Open}"
134142
Content="{x:Static properties:Strings.EntryEditor_Open}" Click="DelveIntoSubEntry" />
135143
</DataTemplate>
136144
</converter:ValueTypeTemplateSelector.ClassTemplate>
137145

138146
<converter:ValueTypeTemplateSelector.StreamTemplate>
139147
<DataTemplate DataType="controls:EntryViewModel">
140148
<StackPanel Orientation="Horizontal">
141-
<TextBlock Width="200"
149+
<TextBlock Width="{StaticResource MinWidth}"
142150
Text="{Binding Value, Converter={StaticResource Base64StringLengthToByteLength}, FallbackValue=Unknown}"
143151
VerticalAlignment="Center" />
144152

145-
<EddieButton Width="120" Content="{x:Static properties:Strings.EntryEditor_Select}" EddieStyle="Green" Margin="5,0,0,0" Icon="{MdiShape Folder_Open}"
153+
<EddieButton Content="{x:Static properties:Strings.EntryEditor_Select}" EddieStyle="Green" Margin="5,0,0,0" Icon="{MdiShape Folder_Open}"
146154
IsEnabled="{Binding IsEditMode, ElementName=UserControl}"
147155
Click="SelectStreamContent" />
148156

149-
<EddieButton Width="120" Content="{x:Static properties:Strings.EntryEditor_Save}" EddieStyle="Green" Margin="5,0,0,0" Icon="{MdiShape Content_Save}"
157+
<EddieButton Content="{x:Static properties:Strings.EntryEditor_Save}" EddieStyle="Green" Margin="5,0,0,0" Icon="{MdiShape Content_Save}"
150158
IsEnabled="{Binding IsEditMode, ElementName=UserControl}"
151159
Click="SaveStreamContent" />
152160
</StackPanel>
@@ -156,7 +164,7 @@
156164
<converter:ValueTypeTemplateSelector.ExceptionTemplate>
157165
<DataTemplate DataType="controls:EntryViewModel">
158166
<StackPanel Orientation="Horizontal">
159-
<TextBlock Width="300"
167+
<TextBlock MinWidth="{StaticResource MinWidth}" MaxWidth="{StaticResource MaxWidth}"
160168
FontStyle="Italic"
161169
VerticalAlignment="Center"
162170
TextTrimming="CharacterEllipsis"
@@ -219,28 +227,28 @@
219227
</ListBox>
220228
</DockPanel>
221229

222-
<Border BorderBrush="LightGray" BorderThickness="1,1,1,1" Grid.Row="1" Margin="0,10,0,0">
230+
<Border BorderBrush="LightGray" BorderThickness="1,1,1,1" Grid.Row="1" Margin="0,10,0,0" Grid.IsSharedSizeScope="True">
223231
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
224232
<ItemsControl ItemsSource="{Binding CurrentEntry.SubEntries, ElementName=UserControl}">
225233
<ItemsControl.ItemTemplate>
226234
<DataTemplate DataType="controls:EntryViewModel">
227235
<Border BorderThickness="0,0,0,1" BorderBrush="DarkGray">
228236
<Grid Margin="5">
229237
<Grid.ColumnDefinitions>
230-
<ColumnDefinition Width="*" />
231-
<ColumnDefinition Width="*" />
238+
<ColumnDefinition Width="*" SharedSizeGroup="Name"/>
239+
<ColumnDefinition Width="4*"/>
232240
</Grid.ColumnDefinitions>
233241

234-
<StackPanel Margin="0,0,25,0">
242+
<StackPanel Grid.Column="0" Margin="0,0,25,0">
235243
<TextBlock Text="{Binding DisplayName}" />
236244
<TextBlock Text="{Binding Description}" TextWrapping="Wrap"
237-
Foreground="DarkGray" />
245+
Foreground="DarkGray" MaxWidth="300"/>
238246
</StackPanel>
239247

240248
<StackPanel Grid.Column="1" Orientation="Horizontal">
241249
<ContentPresenter ContentTemplateSelector="{StaticResource ValueTypeTemplateSelector}" />
242250

243-
<EddieButton Width="120" Content="{x:Static properties:Strings.EntryEditor_Remove}" EddieStyle="Green" Margin="10,0,0,0" Icon="{CommonShape Delete}"
251+
<EddieButton Content="{x:Static properties:Strings.EntryEditor_Remove}" EddieStyle="Green" Margin="10,0,0,0" Icon="{CommonShape Delete}"
244252
Visibility="{Binding CurrentEntry, ElementName=UserControl, Converter={StaticResource DelButtonVisibilityConverter}, FallbackValue=Collapsed}"
245253
IsEnabled="{Binding IsEditMode, ElementName=UserControl}"
246254
Click="RemoveCollectionEntry" />
@@ -260,11 +268,11 @@
260268
<EddieComboBox ItemsSource="{Binding CurrentEntry.PossibleValues, ElementName=UserControl}"
261269
SelectedItem="{Binding DesiredType, ElementName=UserControl, Mode=TwoWay}"
262270
IsEnabled="{Binding IsEditMode, ElementName=UserControl}"
263-
MinWidth="200" />
271+
MinWidth="{StaticResource MinWidth}" />
264272

265273
<EddieButton Margin="5,0,0,0" Icon="{CommonShape Plus}" Content="{Binding CurrentEntry, ElementName=UserControl, Converter={StaticResource ButtonTextConverter}}"
266274
IsEnabled="{Binding IsEditMode, ElementName=UserControl}"
267-
Click="ItemRequested" />
275+
Click="ItemRequested" MinWidth="140" Width="Auto"/>
268276
</StackPanel>
269277

270278
</Grid>

0 commit comments

Comments
 (0)