UI cleanup

This commit is contained in:
TheXamlGuy
2024-08-04 21:54:47 +01:00
parent 0c21ddd20d
commit 44578192cd
9 changed files with 823 additions and 399 deletions
+152 -99
View File
@@ -7,116 +7,169 @@
Header="{Binding Key}"
IsExpanded="False">
<SettingsExpander.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Light">
<StaticResource x:Key="DatePickerButtonBorderBrush" ResourceKey="ControlStrokeColorDefaultBrush" />
<StaticResource x:Key="DatePickerButtonBorderBrushPointerOver" ResourceKey="ControlStrokeColorDefaultBrush" />
</ResourceDictionary>
<ResourceDictionary x:Key="Dark">
<StaticResource x:Key="DatePickerButtonBorderBrush" ResourceKey="SubtleFillColorTransparentBrush" />
<StaticResource x:Key="DatePickerButtonBorderBrushPointerOver" ResourceKey="SubtleFillColorTransparentBrush" />
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Light">
<StaticResource x:Key="DatePickerButtonBorderBrush" ResourceKey="ControlStrokeColorDefaultBrush" />
<StaticResource x:Key="DatePickerButtonBorderBrushPointerOver" ResourceKey="ControlStrokeColorDefaultBrush" />
</ResourceDictionary>
<ResourceDictionary x:Key="Dark">
<StaticResource x:Key="DatePickerButtonBorderBrush" ResourceKey="SubtleFillColorTransparentBrush" />
<StaticResource x:Key="DatePickerButtonBorderBrushPointerOver" ResourceKey="SubtleFillColorTransparentBrush" />
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
<Thickness x:Key="ButtonMargin">0,0,12,0</Thickness>
<Thickness x:Key="ButtonPadding">0</Thickness>
<x:Double x:Key="ButtonMinWidth">32</x:Double>
<x:Double x:Key="ButtonMinHeight">32</x:Double>
<Thickness x:Key="TextControlMargin">0</Thickness>
<Thickness x:Key="TextControlPadding">10,6,6,5</Thickness>
<Thickness x:Key="TextControlCompactPadding">0</Thickness>
<Thickness x:Key="TextControlCompactMargin">0</Thickness>
<Thickness x:Key="DatePickerHostPadding">0,5,0,6</Thickness>
<Thickness x:Key="DatePickerHostMonthPadding">9,5,0,6</Thickness>
</SettingsExpander.Resources>
<SettingsExpander.Styles>
<Style Selector="SettingsExpander.Write">
<Style Selector="^ /template/ SettingsExpanderItem#ContentHost">
<Style Selector="^ /template/ ContentPresenter#FooterPresenter">
<Setter Property="MinWidth" Value="{Binding Width}" />
</Style>
<Style Selector="^:footerBottom /template/ ContentPresenter#FooterPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MinWidth" Value="0" />
</Style>
</Style>
<Style Selector="^ DatePicker">
<Setter Property="MaxWidth" Value="{Binding Width}" />
<Setter Property="MinWidth" Value="{Binding Width}" />
<Setter Property="IsVisible" Value="True" />
<Setter Property="Height" Value="32" />
</Style>
<Style Selector="^ TextBox">
<Setter Property="IsVisible" Value="False" />
</Style>
</Style>
<Style Selector="SettingsExpander.Read">
<Style Selector="^ /template/ SettingsExpanderItem#ContentHost">
<Style Selector="^ /template/ ContentPresenter#FooterPresenter">
<Setter Property="MinWidth" Value="0" />
</Style>
<Style Selector="^:footerBottom /template/ ContentPresenter#FooterPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MinWidth" Value="0" />
</Style>
</Style>
<Style Selector="^ TextBox">
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlCompactPadding}" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="TextWrapping" Value="NoWrap" />
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^:pointerover">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
</Style>
</Style>
<Style Selector="^:focus">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
</Style>
</Style>
</Style>
<Style Selector="^ DatePicker">
<Setter Property="MinWidth" Value="0" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="IsVisible" Value="False" />
</Style>
</Style>
</SettingsExpander.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
<SettingsExpander.Icon>
<Button
Grid.Column="1"
MinWidth="{StaticResource ButtonMinWidth}"
MinHeight="{StaticResource ButtonMinHeight}"
Margin="{StaticResource ButtonMargin}"
Padding="{StaticResource ButtonPadding}"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Command="{Binding RemoveCommand}"
Theme="{StaticResource TransparentButton}">
<Viewbox Height="20">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="{StaticResource FluentThemeFontFamily}"
FontSize="16"
Text="&#xED75;" />
</Viewbox>
<Button.Styles>
<Style Selector="Button.Hide">
<Setter Property="IsVisible" Value="True" />
</Style>
<Style Selector="Button.Show">
<Setter Property="IsVisible" Value="False" />
</Style>
</Button.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Show" RemoveIfExists="True" />
<RemoveClassAction ClassName="Hide" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Hide" RemoveIfExists="True" />
<RemoveClassAction ClassName="Show" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Hide" RemoveIfExists="True" />
<RemoveClassAction ClassName="Show" />
</DataTriggerBehavior>
</Interaction.Behaviors>
</Button>
</SettingsExpander.Icon>
<SettingsExpander.Action>
<ItemEntryActionView />
</SettingsExpander.Action>
<SettingsExpander.Footer>
<Grid>
<DatePicker SelectedDate="{Binding Value}">
<DatePicker.Styles>
<Style Selector="DatePicker.Write">
<Setter Property="MaxWidth" Value="{Binding Width}" />
<Setter Property="MinWidth" Value="{Binding Width}" />
<Setter Property="IsVisible" Value="True" />
<Setter Property="Height" Value="32" />
</Style>
<Style Selector="DatePicker.Read">
<Setter Property="MinWidth" Value="0" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="IsVisible" Value="False" />
</Style>
</DatePicker.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
</DatePicker>
<TextBox Text="{Binding Value, StringFormat=d}">
<TextBox.Styles>
<Style Selector="TextBox.Write">
<Setter Property="IsVisible" Value="False" />
</Style>
<Style Selector="TextBox.Read">
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="IsVisible" Value="True" />
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlCompactPadding}" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^:pointerover">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
</Style>
</Style>
<Style Selector="^:focus">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
</Style>
</Style>
</Style>
</TextBox.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
</TextBox>
<DatePicker SelectedDate="{Binding Value}" />
<TextBox Text="{Binding Value, StringFormat=d}" />
</Grid>
</SettingsExpander.Footer>
</SettingsExpander>
+140 -87
View File
@@ -19,11 +19,149 @@
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
<Thickness x:Key="ButtonMargin">0,0,12,0</Thickness>
<Thickness x:Key="ButtonPadding">0</Thickness>
<x:Double x:Key="ButtonMinWidth">32</x:Double>
<x:Double x:Key="ButtonMinHeight">32</x:Double>
<Thickness x:Key="TextControlMargin">0</Thickness>
<Thickness x:Key="TextControlPadding">10,5,6,6</Thickness>
<Thickness x:Key="TextControlCompactPadding">0</Thickness>
<Thickness x:Key="TextControlCompactMargin">0</Thickness>
<Thickness x:Key="ComboBoxPadding">10,6,6,5</Thickness>
</SettingsExpander.Resources>
<SettingsExpander.Styles>
<Style Selector="SettingsExpander.Write">
<Style Selector="^ /template/ SettingsExpanderItem#ContentHost">
<Style Selector="^ /template/ ContentPresenter#FooterPresenter">
<Setter Property="MinWidth" Value="{Binding Width}" />
</Style>
<Style Selector="^:footerBottom /template/ ContentPresenter#FooterPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MinWidth" Value="0" />
</Style>
</Style>
<Style Selector="^ TextBox">
<Setter Property="IsVisible" Value="False" />
<Setter Property="Margin" Value="{StaticResource TextControlMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlPadding}" />
</Style>
<Style Selector="^ ComboBox">
<Setter Property="MinWidth" Value="0" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="IsVisible" Value="True" />
<Setter Property="Height" Value="32" />
</Style>
</Style>
<Style Selector="SettingsExpander.Read">
<Style Selector="^ /template/ SettingsExpanderItem#ContentHost">
<Style Selector="^ /template/ ContentPresenter#FooterPresenter">
<Setter Property="MinWidth" Value="0" />
</Style>
<Style Selector="^:footerBottom /template/ ContentPresenter#FooterPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MinWidth" Value="0" />
</Style>
</Style>
<Style Selector="^ TextBox">
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="IsVisible" Value="True" />
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlCompactPadding}" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^:pointerover">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
</Style>
</Style>
<Style Selector="^:focus">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
</Style>
</Style>
</Style>
<Style Selector="^ ComboBox">
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsVisible" Value="False" />
</Style>
</Style>
</SettingsExpander.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
<SettingsExpander.Icon>
<Button
Grid.Column="1"
MinWidth="{StaticResource ButtonMinWidth}"
MinHeight="{StaticResource ButtonMinHeight}"
Margin="{StaticResource ButtonMargin}"
Padding="{StaticResource ButtonPadding}"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Command="{Binding RemoveCommand}"
Theme="{StaticResource TransparentButton}">
<Viewbox Height="20">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="{StaticResource FluentThemeFontFamily}"
FontSize="16"
Text="&#xED75;" />
</Viewbox>
<Button.Styles>
<Style Selector="Button.Hide">
<Setter Property="IsVisible" Value="True" />
</Style>
<Style Selector="Button.Show">
<Setter Property="IsVisible" Value="False" />
</Style>
</Button.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Show" RemoveIfExists="True" />
<RemoveClassAction ClassName="Hide" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Hide" RemoveIfExists="True" />
<RemoveClassAction ClassName="Show" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Hide" RemoveIfExists="True" />
<RemoveClassAction ClassName="Show" />
</DataTriggerBehavior>
</Interaction.Behaviors>
</Button>
</SettingsExpander.Icon>
<SettingsExpander.Action>
<ItemEntryActionView />
</SettingsExpander.Action>
@@ -34,93 +172,8 @@
ItemsSource="{Binding}"
SelectedItem="{Binding SelectedItem}"
SelectedValue="{Binding Value}"
SelectedValueBinding="{ReflectionBinding Value}">
<ComboBox.Styles>
<Style Selector="ComboBox.Write">
<Setter Property="MaxWidth" Value="{Binding Width}" />
<Setter Property="MinWidth" Value="{Binding Width}" />
<Setter Property="IsVisible" Value="True" />
</Style>
<Style Selector="ComboBox.Read">
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsVisible" Value="False" />
</Style>
</ComboBox.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
</ComboBox>
<TextBox Text="{Binding Value}">
<TextBox.Styles>
<Style Selector="TextBox.Write">
<Setter Property="IsVisible" Value="False" />
<Setter Property="Margin" Value="{StaticResource TextControlMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlPadding}" />
</Style>
<Style Selector="TextBox.Read">
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="IsVisible" Value="True" />
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlCompactPadding}" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^:pointerover">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
</Style>
</Style>
<Style Selector="^:focus">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
</Style>
</Style>
</Style>
</TextBox.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
</TextBox>
SelectedValueBinding="{ReflectionBinding Value}" />
<TextBox Text="{Binding Value}" />
</Grid>
</SettingsExpander.Footer>
</SettingsExpander>
+139 -48
View File
@@ -19,49 +19,154 @@
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
<Thickness x:Key="ButtonMargin">0,0,12,0</Thickness>
<Thickness x:Key="ButtonPadding">0</Thickness>
<x:Double x:Key="ButtonMinWidth">32</x:Double>
<x:Double x:Key="ButtonMinHeight">32</x:Double>
<Thickness x:Key="TextControlMargin">0</Thickness>
<Thickness x:Key="TextControlPadding">10,5,6,6</Thickness>
<Thickness x:Key="TextControlPadding">10,6,6,5</Thickness>
<Thickness x:Key="TextControlCompactPadding">0</Thickness>
<Thickness x:Key="TextControlCompactMargin">0</Thickness>
<BooleanToPasswordCharConverter x:Key="BooleanToPasswordCharConverter" PasswordChar="&#x25CF;" />
</SettingsExpander.Resources>
<SettingsExpander.Styles>
<Style Selector="SettingsExpander.Write">
<Style Selector="^ /template/ SettingsExpanderItem#ContentHost">
<Style Selector="^ /template/ ContentPresenter#FooterPresenter">
<Setter Property="MinWidth" Value="{Binding Width}" />
</Style>
<Style Selector="^:footerBottom /template/ ContentPresenter#FooterPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MinWidth" Value="0" />
</Style>
</Style>
<Style Selector="^ TextBox">
<Setter Property="MinWidth" Value="0" />
<Setter Property="Margin" Value="{StaticResource TextControlMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlPadding}" />
<Setter Property="TextWrapping" Value="NoWrap" />
</Style>
<Style Selector="^ HyperlinkButton">
<Setter Property="IsVisible" Value="False" />
</Style>
</Style>
<Style Selector="SettingsExpander.Read">
<Style Selector="^ /template/ SettingsExpanderItem#ContentHost">
<Style Selector="^ /template/ ContentPresenter#FooterPresenter">
<Setter Property="MinWidth" Value="0" />
</Style>
<Style Selector="^:footerBottom /template/ ContentPresenter#FooterPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MinWidth" Value="0" />
</Style>
</Style>
<Style Selector="^ TextBox">
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlCompactPadding}" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="TextWrapping" Value="NoWrap" />
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^:pointerover">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
</Style>
</Style>
<Style Selector="^:focus">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
</Style>
</Style>
</Style>
<Style Selector="^ HyperlinkButton">
<Setter Property="IsVisible" Value="True" />
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
</Style>
</Style>
</SettingsExpander.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
<SettingsExpander.Icon>
<Button
Grid.Column="1"
MinWidth="{StaticResource ButtonMinWidth}"
MinHeight="{StaticResource ButtonMinHeight}"
Margin="{StaticResource ButtonMargin}"
Padding="{StaticResource ButtonPadding}"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Command="{Binding RemoveCommand}"
Theme="{StaticResource TransparentButton}">
<Viewbox Height="20">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="{StaticResource FluentThemeFontFamily}"
FontSize="16"
Text="&#xED75;" />
</Viewbox>
<Button.Styles>
<Style Selector="Button.Hide">
<Setter Property="IsVisible" Value="True" />
</Style>
<Style Selector="Button.Show">
<Setter Property="IsVisible" Value="False" />
</Style>
</Button.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Show" RemoveIfExists="True" />
<RemoveClassAction ClassName="Hide" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Hide" RemoveIfExists="True" />
<RemoveClassAction ClassName="Show" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Hide" RemoveIfExists="True" />
<RemoveClassAction ClassName="Show" />
</DataTriggerBehavior>
</Interaction.Behaviors>
</Button>
</SettingsExpander.Icon>
<SettingsExpander.Action>
<ItemEntryActionView />
</SettingsExpander.Action>
<SettingsExpander.Footer>
<Grid>
<TextBox Classes="clearButton" Text="{Binding Value}">
<TextBox.Styles>
<Style Selector="TextBox.Write">
<Setter Property="MaxWidth" Value="{Binding Width}" />
<Setter Property="MinWidth" Value="{Binding Width}" />
<Setter Property="IsVisible" Value="True" />
</Style>
<Style Selector="TextBox.Read">
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="IsVisible" Value="False" />
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlCompactPadding}" />
<Setter Property="MinHeight" Value="0" />
</Style>
</TextBox.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
</TextBox>
<TextBox Classes="clearButton" Text="{Binding Value}" />
<HyperlinkButton
Padding="0"
Command="{Binding InvokeCommand}"
@@ -75,20 +180,6 @@
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
</Style>
</HyperlinkButton.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
</HyperlinkButton>
</Grid>
</SettingsExpander.Footer>
+19
View File
@@ -8,6 +8,25 @@
<ItemsControl.Styles>
<Style Selector="ContentPresenter">
<Setter Property="IsTabStop" Value="False" />
<Setter Property="(Interaction.Behaviors)">
<BehaviorCollectionTemplate>
<BehaviorCollection>
<ItemDragBehavior
HorizontalDragThreshold="3"
Orientation="Vertical"
VerticalDragThreshold="3" />
</BehaviorCollection>
</BehaviorCollectionTemplate>
</Setter>
</Style>
<Style Selector="ContentPresenter:not(:dragging)">
<Setter Property="Transitions">
<Setter.Value>
<Transitions>
<TransformOperationsTransition Property="RenderTransform" Duration="0:0:0.1" />
</Transitions>
</Setter.Value>
</Setter>
</Style>
</ItemsControl.Styles>
<ItemsControl.ItemsPanel>
+118 -49
View File
@@ -19,76 +19,145 @@
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
<Thickness x:Key="ButtonMargin">0,0,12,0</Thickness>
<Thickness x:Key="ButtonPadding">0</Thickness>
<x:Double x:Key="ButtonMinWidth">32</x:Double>
<x:Double x:Key="ButtonMinHeight">32</x:Double>
<Thickness x:Key="TextControlMargin">0</Thickness>
<Thickness x:Key="TextControlPadding">10,5,6,6</Thickness>
<Thickness x:Key="TextControlPadding">10,6,6,5</Thickness>
<Thickness x:Key="TextControlCompactPadding">0</Thickness>
<Thickness x:Key="TextControlCompactMargin">0</Thickness>
<BooleanToPasswordCharConverter x:Key="BooleanToPasswordCharConverter" PasswordChar="&#x25CF;" />
</SettingsExpander.Resources>
<SettingsExpander.Action>
<ItemEntryActionView />
</SettingsExpander.Action>
<SettingsExpander.Footer>
<MaskedTextBox Mask="{Binding Pattern}" Text="{Binding Value}">
<TextBox.Styles>
<Style Selector="TextBox.Write">
<Setter Property="MaxWidth" Value="{Binding Width}" />
<SettingsExpander.Styles>
<Style Selector="SettingsExpander.Write">
<Style Selector="^ /template/ SettingsExpanderItem#ContentHost">
<Style Selector="^ /template/ ContentPresenter#FooterPresenter">
<Setter Property="MinWidth" Value="{Binding Width}" />
<Setter Property="Margin" Value="{StaticResource TextControlMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlPadding}" />
<Setter Property="TextWrapping" Value="NoWrap" />
</Style>
<Style Selector="TextBox.Read">
<Style Selector="^:footerBottom /template/ ContentPresenter#FooterPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlCompactPadding}" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="TextWrapping" Value="NoWrap" />
</Style>
</Style>
<Style Selector="^ TextBox">
<Setter Property="MinWidth" Value="0" />
<Setter Property="Margin" Value="{StaticResource TextControlMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlPadding}" />
<Setter Property="TextWrapping" Value="NoWrap" />
</Style>
</Style>
<Style Selector="SettingsExpander.Read">
<Style Selector="^ /template/ SettingsExpanderItem#ContentHost">
<Style Selector="^ /template/ ContentPresenter#FooterPresenter">
<Setter Property="MinWidth" Value="0" />
</Style>
<Style Selector="^:footerBottom /template/ ContentPresenter#FooterPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MinWidth" Value="0" />
</Style>
</Style>
<Style Selector="^ TextBox">
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlCompactPadding}" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="TextWrapping" Value="NoWrap" />
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^:pointerover">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^:pointerover">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
</Style>
</Style>
<Style Selector="^:focus">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
</Style>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
</Style>
</Style>
</TextBox.Styles>
<Style Selector="^:focus">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
</Style>
</Style>
</Style>
</Style>
</SettingsExpander.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
<SettingsExpander.Icon>
<Button
Grid.Column="1"
MinWidth="{StaticResource ButtonMinWidth}"
MinHeight="{StaticResource ButtonMinHeight}"
Margin="{StaticResource ButtonMargin}"
Padding="{StaticResource ButtonPadding}"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Command="{Binding RemoveCommand}"
Theme="{StaticResource TransparentButton}">
<Viewbox Height="20">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="{StaticResource FluentThemeFontFamily}"
FontSize="16"
Text="&#xED75;" />
</Viewbox>
<Button.Styles>
<Style Selector="Button.Hide">
<Setter Property="IsVisible" Value="True" />
</Style>
<Style Selector="Button.Show">
<Setter Property="IsVisible" Value="False" />
</Style>
</Button.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
<AddClassAction ClassName="Show" RemoveIfExists="True" />
<RemoveClassAction ClassName="Hide" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
<AddClassAction ClassName="Hide" RemoveIfExists="True" />
<RemoveClassAction ClassName="Show" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
<AddClassAction ClassName="Hide" RemoveIfExists="True" />
<RemoveClassAction ClassName="Show" />
</DataTriggerBehavior>
</Interaction.Behaviors>
</MaskedTextBox>
</Button>
</SettingsExpander.Icon>
<SettingsExpander.Action>
<ItemEntryActionView />
</SettingsExpander.Action>
<SettingsExpander.Footer>
<MaskedTextBox Mask="{Binding Pattern}" Text="{Binding Value}" />
</SettingsExpander.Footer>
</SettingsExpander>
+130 -61
View File
@@ -20,12 +20,141 @@
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
<Thickness x:Key="ButtonMargin">0,0,12,0</Thickness>
<Thickness x:Key="ButtonPadding">0</Thickness>
<x:Double x:Key="ButtonMinWidth">32</x:Double>
<x:Double x:Key="ButtonMinHeight">32</x:Double>
<Thickness x:Key="TextControlMargin">0</Thickness>
<Thickness x:Key="TextControlPadding">10,6,6,5</Thickness>
<Thickness x:Key="TextControlCompactPadding">0</Thickness>
<Thickness x:Key="TextControlCompactMargin">0</Thickness>
<BooleanToPasswordCharConverter x:Key="BooleanToPasswordCharConverter" PasswordChar="&#x25CF;" />
</SettingsExpander.Resources>
<SettingsExpander.Styles>
<Style Selector="SettingsExpander.Write">
<Style Selector="^ /template/ SettingsExpanderItem#ContentHost">
<Style Selector="^ /template/ ContentPresenter#FooterPresenter">
<Setter Property="MinWidth" Value="{Binding Width}" />
</Style>
<Style Selector="^:footerBottom /template/ ContentPresenter#FooterPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MinWidth" Value="0" />
</Style>
</Style>
<Style Selector="^ TextBox">
<Setter Property="MinWidth" Value="0" />
<Setter Property="Margin" Value="{StaticResource TextControlMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlPadding}" />
<Setter Property="TextWrapping" Value="NoWrap" />
</Style>
</Style>
<Style Selector="SettingsExpander.Read">
<Style Selector="^ /template/ SettingsExpanderItem#ContentHost">
<Style Selector="^ /template/ ContentPresenter#FooterPresenter">
<Setter Property="MinWidth" Value="0" />
</Style>
<Style Selector="^:footerBottom /template/ ContentPresenter#FooterPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MinWidth" Value="0" />
</Style>
</Style>
<Style Selector="^ TextBox">
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlCompactPadding}" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="TextWrapping" Value="NoWrap" />
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^:pointerover">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
</Style>
</Style>
<Style Selector="^:focus">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
</Style>
</Style>
</Style>
</Style>
</SettingsExpander.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
<SettingsExpander.Icon>
<Button
Grid.Column="1"
MinWidth="{StaticResource ButtonMinWidth}"
MinHeight="{StaticResource ButtonMinHeight}"
Margin="{StaticResource ButtonMargin}"
Padding="{StaticResource ButtonPadding}"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Command="{Binding RemoveCommand}"
Theme="{StaticResource TransparentButton}">
<Viewbox Height="20">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="{StaticResource FluentThemeFontFamily}"
FontSize="16"
Text="&#xED75;" />
</Viewbox>
<Button.Styles>
<Style Selector="Button.Hide">
<Setter Property="IsVisible" Value="True" />
</Style>
<Style Selector="Button.Show">
<Setter Property="IsVisible" Value="False" />
</Style>
</Button.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Show" RemoveIfExists="True" />
<RemoveClassAction ClassName="Hide" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Hide" RemoveIfExists="True" />
<RemoveClassAction ClassName="Show" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Hide" RemoveIfExists="True" />
<RemoveClassAction ClassName="Show" />
</DataTriggerBehavior>
</Interaction.Behaviors>
</Button>
</SettingsExpander.Icon>
<SettingsExpander.Action>
<ItemEntryActionView />
</SettingsExpander.Action>
@@ -34,66 +163,6 @@
Classes="revealPasswordButton"
PasswordChar="{Binding IsRevealed, Converter={StaticResource BooleanToPasswordCharConverter}}"
RevealPassword="{Binding IsRevealed}"
Text="{Binding Value}">
<TextBox.Styles>
<Style Selector="TextBox.Write">
<Setter Property="MaxWidth" Value="{Binding Width}" />
<Setter Property="MinWidth" Value="{Binding Width}" />
<Setter Property="Margin" Value="{StaticResource TextControlMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlPadding}" />
<Setter Property="TextWrapping" Value="NoWrap" />
</Style>
<Style Selector="TextBox.Read">
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlCompactPadding}" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^:pointerover">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
</Style>
</Style>
<Style Selector="^:focus">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
</Style>
</Style>
</Style>
</TextBox.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
</TextBox>
Text="{Binding Value}" />
</SettingsExpander.Footer>
</SettingsExpander>
+117 -50
View File
@@ -2,6 +2,7 @@
x:Class="Wallet.Avalonia.TextEntryView"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ui="using:FluentAvalonia.UI.Controls"
xmlns:vm="using:Wallet"
x:DataType="vm:TextEntryViewModel"
Header="{Binding Key}"
@@ -19,78 +20,144 @@
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
<Thickness x:Key="ButtonMargin">0,0,12,0</Thickness>
<Thickness x:Key="ButtonPadding">0</Thickness>
<x:Double x:Key="ButtonMinWidth">32</x:Double>
<x:Double x:Key="ButtonMinHeight">32</x:Double>
<Thickness x:Key="TextControlMargin">0</Thickness>
<Thickness x:Key="TextControlPadding">10,6,6,5</Thickness>
<Thickness x:Key="TextControlCompactPadding">0</Thickness>
<Thickness x:Key="TextControlCompactMargin">0</Thickness>
</SettingsExpander.Resources>
<SettingsExpander.Icon />
<SettingsExpander.Action>
<ItemEntryActionView />
</SettingsExpander.Action>
<SettingsExpander.Footer>
<TextBox Classes="clearButton" Text="{Binding Value}">
<TextBox.Styles>
<Style Selector="TextBox.Write">
<Setter Property="MaxWidth" Value="{Binding Width}" />
<SettingsExpander.Styles>
<Style Selector="SettingsExpander.Write">
<Style Selector="^ /template/ SettingsExpanderItem#ContentHost">
<Style Selector="^ /template/ ContentPresenter#FooterPresenter">
<Setter Property="MinWidth" Value="{Binding Width}" />
<Setter Property="Margin" Value="{StaticResource TextControlMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlPadding}" />
<Setter Property="TextWrapping" Value="NoWrap" />
</Style>
<Style Selector="TextBox.Read">
<Style Selector="^:footerBottom /template/ ContentPresenter#FooterPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlCompactPadding}" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="TextWrapping" Value="NoWrap" />
</Style>
</Style>
<Style Selector="^ TextBox">
<Setter Property="MinWidth" Value="0" />
<Setter Property="Margin" Value="{StaticResource TextControlMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlPadding}" />
<Setter Property="TextWrapping" Value="NoWrap" />
</Style>
</Style>
<Style Selector="SettingsExpander.Read">
<Style Selector="^ /template/ SettingsExpanderItem#ContentHost">
<Style Selector="^ /template/ ContentPresenter#FooterPresenter">
<Setter Property="MinWidth" Value="0" />
</Style>
<Style Selector="^:footerBottom /template/ ContentPresenter#FooterPresenter">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MinWidth" Value="0" />
</Style>
</Style>
<Style Selector="^ TextBox">
<Setter Property="MinWidth" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Margin" Value="{StaticResource TextControlCompactMargin}" />
<Setter Property="Padding" Value="{StaticResource TextControlCompactPadding}" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="TextWrapping" Value="NoWrap" />
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^:pointerover">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^:pointerover">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
</Style>
</Style>
<Style Selector="^:focus">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
</Style>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
</Style>
</Style>
</TextBox.Styles>
<Style Selector="^:focus">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Opacity="0.7" Color="{DynamicResource TextFillColorPrimary}" />
</Setter.Value>
</Setter>
<Style Selector="^ /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
</Style>
</Style>
</Style>
</Style>
</SettingsExpander.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
<SettingsExpander.Icon>
<Button
Grid.Column="1"
MinWidth="{StaticResource ButtonMinWidth}"
MinHeight="{StaticResource ButtonMinHeight}"
Margin="{StaticResource ButtonMargin}"
Padding="{StaticResource ButtonPadding}"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
Command="{Binding RemoveCommand}"
Theme="{StaticResource TransparentButton}">
<Viewbox Height="20">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="{StaticResource FluentThemeFontFamily}"
FontSize="16"
Text="&#xED75;" />
</Viewbox>
<Button.Styles>
<Style Selector="Button.Hide">
<Setter Property="IsVisible" Value="True" />
</Style>
<Style Selector="Button.Show">
<Setter Property="IsVisible" Value="False" />
</Style>
</Button.Styles>
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
<RemoveClassAction ClassName="Write" />
<AddClassAction ClassName="Show" RemoveIfExists="True" />
<RemoveClassAction ClassName="Hide" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.New}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
<AddClassAction ClassName="Hide" RemoveIfExists="True" />
<RemoveClassAction ClassName="Show" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<AddClassAction ClassName="Write" RemoveIfExists="True" />
<RemoveClassAction ClassName="Read" />
<AddClassAction ClassName="Hide" RemoveIfExists="True" />
<RemoveClassAction ClassName="Show" />
</DataTriggerBehavior>
</Interaction.Behaviors>
</TextBox>
</Button>
</SettingsExpander.Icon>
<SettingsExpander.Action>
<ItemEntryActionView />
</SettingsExpander.Action>
<SettingsExpander.Footer>
<TextBox Classes="clearButton" Text="{Binding Value}" />
</SettingsExpander.Footer>
</SettingsExpander>
+8 -4
View File
@@ -95,10 +95,6 @@ public partial class ItemEntryCollectionViewModel<TItem, TValue> :
return Task.CompletedTask;
}
protected virtual void OnStateChanged()
{
}
public Task Handle(ConfirmEventArgs<Item> args)
{
Commit();
@@ -120,12 +116,20 @@ public partial class ItemEntryCollectionViewModel<TItem, TValue> :
return await Task.FromResult(true);
}
protected virtual void OnStateChanged()
{
}
[RelayCommand]
private void Copy() => Publisher.Publish(Write.As(new Clipboard<object>($"{Value}")));
[RelayCommand]
private void Hide() => IsRevealed = false;
[RelayCommand]
private void Remove() => Dispose();
[RelayCommand]
private void Reveal() => IsRevealed = true;
}
-1
View File
@@ -70,7 +70,6 @@ public partial class ItemEntryViewModel<TValue> :
return Task.CompletedTask;
}
public async Task<bool> Handle(ValidateEventArgs<ItemEntry> args,
CancellationToken cancellationToken)