Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <ResourceDictionary xmlns="https://github.com/avaloniaui"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:converters="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls"
- xmlns:suki="https://github.com/kikipoulet/SukiUI"
- xmlns:system="clr-namespace:System;assembly=netstandard">
- <!-- Add Resources Here -->
- <Design.PreviewWith>
- <Border Width="800"
- Height="580"
- Padding="20"
- Background="{DynamicResource SukiBackground}">
- <Grid ColumnDefinitions="Auto,*,Auto"
- ColumnSpacing="10"
- RowDefinitions="*"
- RowSpacing="10">
- <StackPanel Grid.Row="0"
- Grid.Column="0"
- Width="250"
- Spacing="5">
- <TextBox IsEnabled="False"
- Text="Disabled text"
- Watermark="TextBox" />
- <TextBox suki:TextBoxExtensions.AddDeleteButton="True"
- BorderBrush="Red"
- BorderThickness="10"
- Text="Thick border"
- UseFloatingWatermark="True" />
- <TextBox suki:TextBoxExtensions.AddDeleteButton="True" Text="Error validation">
- <DataValidationErrors.Error>
- <system:Exception>
- <x:Arguments>
- <x:String>Validation error</x:String>
- </x:Arguments>
- </system:Exception>
- </DataValidationErrors.Error>
- </TextBox>
- <TextBox suki:TextBoxExtensions.Prefix="https://"
- Text="test.com"
- UseFloatingWatermark="True"
- Watermark="Url" />
- <TextBox InnerLeftContent="[L]"
- InnerRightContent="[R]"
- Text="InnerContent" />
- <TextBox Classes="NoShadow" Watermark="NoShadow" />
- <NumericUpDown Value="1">
- <DataValidationErrors.Error>
- <system:Exception>
- <x:Arguments>
- <x:String>Validation error</x:String>
- </x:Arguments>
- </system:Exception>
- </DataValidationErrors.Error>
- </NumericUpDown>
- <Panel>
- <Border Margin="0,0,0,25" Classes="Card">
- <StackPanel>
- <TextBlock Margin="6,0,0,3"
- FontSize="13"
- FontWeight="{DynamicResource DefaultDemiBold}"
- Text="Username" />
- <TextBox BorderBrush="Red"
- BorderThickness="1"
- Classes="clearButton"
- Text="Admin" />
- <TextBlock Margin="6,18,0,3"
- FontSize="13"
- FontWeight="{DynamicResource DefaultDemiBold}"
- Text="Password" />
- <TextBox Margin="0,0,0,20"
- suki:TextBoxExtensions.AddDeleteButton="True"
- Classes="revealPasswordButton"
- PasswordChar="*"
- Text="password" />
- </StackPanel>
- </Border>
- <Button Width="160"
- HorizontalAlignment="Center"
- VerticalAlignment="Bottom"
- Classes="Rounded Flat">
- <StackPanel HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Orientation="Horizontal">
- <PathIcon Data="{x:Static suki:Icons.Login}" Foreground="White" />
- <TextBlock Margin="10,0,0,0"
- FontSize="13"
- FontWeight="{DynamicResource DefaultDemiBold}"
- Foreground="White"
- Text="Sign In" />
- </StackPanel>
- </Button>
- </Panel>
- </StackPanel>
- <TextBox Grid.Row="0"
- Grid.Column="1"
- VerticalAlignment="Top"
- AcceptsReturn="True"
- Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis laoreet nibh tortor, at vulputate sem porttitor in. Praesent tempus suscipit eros, in molestie nibh semper sed. Pellentesque pellentesque elit bibendum, rhoncus nisi ac, posuere justo. Mauris a rhoncus est. Sed id mi dictum, vestibulum nibh sit amet, aliquet elit. Nunc sit amet ante cursus, tincidunt sapien sed, egestas nibh. Praesent a erat justo. Sed ultrices varius metus ac tristique. 
Morbi aliquam justo ac blandit pretium. Mauris eleifend nunc at lobortis auctor. Cras sagittis nulla eu sem molestie, vitae varius eros vestibulum. Curabitur mollis dapibus tellus, vitae ornare nisi. Maecenas vehicula ipsum quis sapien maximus scelerisque. Fusce quis vestibulum nibh. Phasellus at vulputate nisi, vitae blandit ligula. Phasellus sem erat, eleifend vel efficitur eget, vehicula posuere felis. Sed auctor, ipsum vel semper lacinia, leo mauris ornare nulla, rutrum aliquam odio est ac mi. 
Cras id lacus vel ante ultricies efficitur eu sit amet libero. Proin laoreet felis at risus lobortis, vel aliquet quam sodales. Pellentesque laoreet metus erat, ac ultrices orci suscipit vitae. Nam congue, eros ut tempus venenatis, elit massa finibus lacus, eu gravida turpis lectus sed odio. Suspendisse potenti. Vivamus aliquam ipsum nec justo egestas efficitur nec eget orci. Aenean vitae ullamcorper libero, sit amet luctus diam. Proin in augue aliquam, maximus tortor quis, lobortis mi. 
Quisque ex massa, volutpat a urna nec, ultricies condimentum tellus. Aliquam erat volutpat. Sed consequat odio risus, imperdiet venenatis nisi semper in. Duis elit mi, sollicitudin at quam quis, imperdiet cursus erat. Morbi varius, neque ut cursus feugiat, orci metus tempor erat, in gravida sapien massa sed nisl. Nullam mattis mi neque, vel consequat odio dictum ut. Nam sed massa velit. Integer eget odio massa. Suspendisse quis sapien euismod, pharetra mauris id, sodales justo. Maecenas elementum urna est, sit amet luctus felis sagittis sed. 
Curabitur sit amet metus vitae augue malesuada interdum. Nulla id felis eu magna interdum finibus. Nam rutrum magna dolor, nec consequat metus interdum eget. In laoreet venenatis maximus. Suspendisse convallis laoreet ipsum nec tempus. Donec convallis ex a scelerisque hendrerit. Quisque luctus odio et nulla ullamcorper, a mollis nunc finibus. Morbi dictum lorem quis mi ornare, vitae mattis erat ullamcorper. Duis lacus enim, dictum non lorem nec, vehicula aliquet dolor. Phasellus egestas viverra elementum."
- TextWrapping="Wrap" />
- <Border Grid.Row="0"
- Grid.Column="2"
- Width="200"
- MaxHeight="300"
- VerticalAlignment="Top">
- <TextBox AcceptsReturn="True"
- Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis laoreet nibh tortor, at vulputate sem porttitor in. Praesent tempus suscipit eros, in molestie nibh semper sed. Pellentesque pellentesque elit bibendum, rhoncus nisi ac, posuere justo. Mauris a rhoncus est. Sed id mi dictum, vestibulum nibh sit amet, aliquet elit. Nunc sit amet ante cursus, tincidunt sapien sed, egestas nibh. Praesent a erat justo. Sed ultrices varius metus ac tristique. 
Morbi aliquam justo ac blandit pretium. Mauris eleifend nunc at lobortis auctor. Cras sagittis nulla eu sem molestie, vitae varius eros vestibulum. Curabitur mollis dapibus tellus, vitae ornare nisi. Maecenas vehicula ipsum quis sapien maximus scelerisque. Fusce quis vestibulum nibh. Phasellus at vulputate nisi, vitae blandit ligula. Phasellus sem erat, eleifend vel efficitur eget, vehicula posuere felis. Sed auctor, ipsum vel semper lacinia, leo mauris ornare nulla, rutrum aliquam odio est ac mi. 
Cras id lacus vel ante ultricies efficitur eu sit amet libero. Proin laoreet felis at risus lobortis, vel aliquet quam sodales. Pellentesque laoreet metus erat, ac ultrices orci suscipit vitae. Nam congue, eros ut tempus venenatis, elit massa finibus lacus, eu gravida turpis lectus sed odio. Suspendisse potenti. Vivamus aliquam ipsum nec justo egestas efficitur nec eget orci. Aenean vitae ullamcorper libero, sit amet luctus diam. Proin in augue aliquam, maximus tortor quis, lobortis mi. 
Quisque ex massa, volutpat a urna nec, ultricies condimentum tellus. Aliquam erat volutpat. Sed consequat odio risus, imperdiet venenatis nisi semper in. Duis elit mi, sollicitudin at quam quis, imperdiet cursus erat. Morbi varius, neque ut cursus feugiat, orci metus tempor erat, in gravida sapien massa sed nisl. Nullam mattis mi neque, vel consequat odio dictum ut. Nam sed massa velit. Integer eget odio massa. Suspendisse quis sapien euismod, pharetra mauris id, sodales justo. Maecenas elementum urna est, sit amet luctus felis sagittis sed. 
Curabitur sit amet metus vitae augue malesuada interdum. Nulla id felis eu magna interdum finibus. Nam rutrum magna dolor, nec consequat metus interdum eget. In laoreet venenatis maximus. Suspendisse convallis laoreet ipsum nec tempus. Donec convallis ex a scelerisque hendrerit. Quisque luctus odio et nulla ullamcorper, a mollis nunc finibus. Morbi dictum lorem quis mi ornare, vitae mattis erat ullamcorper. Duis lacus enim, dictum non lorem nec, vehicula aliquet dolor. Phasellus egestas viverra elementum."
- TextWrapping="Wrap" />
- </Border>
- </Grid>
- </Border>
- </Design.PreviewWith>
- <StreamGeometry x:Key="TextBoxClearButtonData">M 11.416016,10 20,1.4160156 18.583984,0 10,8.5839846 1.4160156,0 0,1.4160156 8.5839844,10 0,18.583985 1.4160156,20 10,11.416015 18.583984,20 20,18.583985 Z</StreamGeometry>
- <StreamGeometry x:Key="PasswordBoxRevealButtonData">m10.051 7.0032c2.215 0 4.0105 1.7901 4.0105 3.9984s-1.7956 3.9984-4.0105 3.9984c-2.215 0-4.0105-1.7901-4.0105-3.9984s1.7956-3.9984 4.0105-3.9984zm0 1.4994c-1.3844 0-2.5066 1.1188-2.5066 2.499s1.1222 2.499 2.5066 2.499 2.5066-1.1188 2.5066-2.499-1.1222-2.499-2.5066-2.499zm0-5.0026c4.6257 0 8.6188 3.1487 9.7267 7.5613 0.10085 0.40165-0.14399 0.80877-0.54686 0.90931-0.40288 0.10054-0.81122-0.14355-0.91208-0.54521-0.94136-3.7492-4.3361-6.4261-8.2678-6.4261-3.9334 0-7.3292 2.6792-8.2689 6.4306-0.10063 0.40171-0.50884 0.64603-0.91177 0.54571s-0.648-0.5073-0.54737-0.90901c1.106-4.4152 5.1003-7.5667 9.728-7.5667z</StreamGeometry>
- <StreamGeometry x:Key="PasswordBoxHideButtonData">m0.21967 0.21965c-0.26627 0.26627-0.29047 0.68293-0.07262 0.97654l0.07262 0.08412 4.0346 4.0346c-1.922 1.3495-3.3585 3.365-3.9554 5.7495-0.10058 0.4018 0.14362 0.8091 0.54543 0.9097 0.40182 0.1005 0.80909-0.1436 0.90968-0.5455 0.52947-2.1151 1.8371-3.8891 3.5802-5.0341l1.8096 1.8098c-0.70751 0.7215-1.1438 1.71-1.1438 2.8003 0 2.2092 1.7909 4 4 4 1.0904 0 2.0788-0.4363 2.8004-1.1438l5.9193 5.9195c0.2929 0.2929 0.7677 0.2929 1.0606 0 0.2663-0.2662 0.2905-0.6829 0.0726-0.9765l-0.0726-0.0841-6.1135-6.1142 0.0012-0.0015-1.2001-1.1979-2.8699-2.8693 2e-3 -8e-4 -2.8812-2.8782 0.0012-0.0018-1.1333-1.1305-4.3064-4.3058c-0.29289-0.29289-0.76777-0.29289-1.0607 0zm7.9844 9.0458 3.5351 3.5351c-0.45 0.4358-1.0633 0.704-1.7392 0.704-1.3807 0-2.5-1.1193-2.5-2.5 0-0.6759 0.26824-1.2892 0.7041-1.7391zm1.7959-5.7655c-1.0003 0-1.9709 0.14807-2.8889 0.425l1.237 1.2362c0.5358-0.10587 1.0883-0.16119 1.6519-0.16119 3.9231 0 7.3099 2.6803 8.2471 6.4332 0.1004 0.4018 0.5075 0.6462 0.9094 0.5459 0.4019-0.1004 0.6463-0.5075 0.5459-0.9094-1.103-4.417-5.0869-7.5697-9.7024-7.5697zm0.1947 3.5093 3.8013 3.8007c-0.1018-2.0569-1.7488-3.7024-3.8013-3.8007z</StreamGeometry>
- <MenuFlyout x:Key="DefaultTextBoxContextFlyout" Placement="Bottom">
- <MenuItem x:Name="TextBoxContextFlyoutCutItem"
- Margin="10,0,0,0"
- Command="{Binding $parent[TextBox].Cut}"
- Header="{DynamicResource STRING_MENU_CUT}"
- InputGesture="{x:Static TextBox.CutGesture}"
- IsEnabled="{Binding $parent[TextBox].CanCut}" />
- <MenuItem x:Name="TextBoxContextFlyoutCopyItem"
- Margin="10,0,0,0"
- Command="{Binding $parent[TextBox].Copy}"
- Header="{DynamicResource STRING_MENU_COPY}"
- InputGesture="{x:Static TextBox.CopyGesture}"
- IsEnabled="{Binding $parent[TextBox].CanCopy}" />
- <MenuItem x:Name="TextBoxContextFlyoutPasteItem"
- Margin="10,0,0,0"
- Command="{Binding $parent[TextBox].Paste}"
- Header="{DynamicResource STRING_MENU_PASTE}"
- InputGesture="{x:Static TextBox.PasteGesture}"
- IsEnabled="{Binding $parent[TextBox].CanPaste}" />
- </MenuFlyout>
- <ContextMenu x:Key="DefaultTextBoxContextMenu" x:Name="TextBoxContextMenu">
- <MenuItem x:Name="TextBoxContextMenuCutItem"
- Margin="10,0,0,0"
- Command="{Binding $parent[TextBox].Cut}"
- Header="Cut"
- InputGesture="{x:Static TextBox.CutGesture}"
- IsEnabled="{Binding $parent[TextBox].CanCut}" />
- <MenuItem x:Name="TextBoxContextMenuCopyItem"
- Margin="10,0,0,0"
- Command="{Binding $parent[TextBox].Copy}"
- Header="Copy"
- InputGesture="{x:Static TextBox.CopyGesture}"
- IsEnabled="{Binding $parent[TextBox].CanCopy}" />
- <MenuItem x:Name="TextBoxContextMenuPasteItem"
- Margin="10,0,0,0"
- Command="{Binding $parent[TextBox].Paste}"
- Header="Paste"
- InputGesture="{x:Static TextBox.PasteGesture}"
- IsEnabled="{Binding $parent[TextBox].CanPaste}" />
- </ContextMenu>
- <system:Double x:Key="SukiTextBoxElementSpacing">5</system:Double>
- <suki:StringToDoubleConverter x:Key="StringToDoubleC" />
- <converters:MarginMultiplierConverter x:Key="FloatingWatermarkPaddingMultiplier"
- Bottom="True"
- Indent="1"
- Left="False"
- Right="False"
- Top="False" />
- <ControlTheme x:Key="SukiBaseInputControl" TargetType="TemplatedControl">
- <Setter Property="BorderThickness" Value="1" />
- <Setter Property="FontSize" Value="14" />
- <Setter Property="BorderBrush" Value="{DynamicResource SukiControlBorderBrush}" />
- <Setter Property="CornerRadius" Value="{DynamicResource SmallCornerRadius}" />
- <Setter Property="Background" Value="Red" />
- <Setter Property="Foreground" Value="{DynamicResource SukiText}" />
- <Style Selector="^:disabled">
- <Setter Property="Opacity" Value="{DynamicResource ThemeDisabledOpacity}" />
- </Style>
- <Style Selector="^:pointerover, ^:focus">
- <Setter Property="BorderBrush" Value="{DynamicResource SukiPrimaryColor}" />
- </Style>
- <Style Selector="^:error">
- <Setter Property="BorderBrush" Value="{DynamicResource ErrorBrush}" />
- </Style>
- <Style Selector="^.NoShadow">
- <Setter Property="Background" Value="Transparent" />
- <Setter Property="BorderThickness" Value="0" />
- <Style Selector="^:pointerover, ^:focus">
- <Setter Property="Background" Value="Transparent" />
- <Setter Property="BorderBrush" Value="Transparent" />
- <Setter Property="BorderThickness" Value="0" />
- </Style>
- </Style>
- </ControlTheme>
- <ControlTheme x:Key="SukiTextBoxButton" TargetType="Button">
- <Setter Property="Cursor" Value="Hand" />
- <Setter Property="Focusable" Value="False" />
- <Setter Property="Template">
- <ControlTemplate TargetType="Button">
- <Border Name="PART_ButtonLayoutBorder" Background="Transparent">
- <Path x:Name="PART_GlyphElement"
- Height="10"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Data="{StaticResource TextBoxClearButtonData}"
- Fill="{DynamicResource SukiLowText}"
- Stretch="Uniform" />
- </Border>
- </ControlTemplate>
- </Setter>
- </ControlTheme>
- <ControlTheme x:Key="SukiTextBoxToggleButton"
- BasedOn="{StaticResource SukiTextBoxButton}"
- TargetType="ToggleButton">
- <Setter Property="Cursor" Value="Hand" />
- <Setter Property="Focusable" Value="False" />
- <Setter Property="Template">
- <ControlTemplate TargetType="ToggleButton">
- <Border Name="PART_ButtonLayoutBorder"
- Height="16"
- Background="Transparent">
- <Path x:Name="PART_GlyphElement"
- Height="10"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Data="{DynamicResource PasswordBoxRevealButtonData}"
- Fill="{DynamicResource SukiLowText}"
- Stretch="Uniform" />
- </Border>
- </ControlTemplate>
- </Setter>
- <Style Selector="^:checked /template/ Path">
- <Setter Property="Data" Value="{DynamicResource PasswordBoxHideButtonData}" />
- <Setter Property="Height" Value="16" />
- </Style>
- </ControlTheme>
- <ControlTheme x:Key="SukiTextBox"
- BasedOn="{StaticResource SukiBaseInputControl}"
- TargetType="TextBox">
- <Setter Property="VerticalContentAlignment" Value="Center" />
- <Setter Property="BorderThickness" Value="1" />
- <Setter Property="FontSize" Value="14" />
- <Setter Property="BorderBrush" Value="{DynamicResource SukiControlBorderBrush}" />
- <Setter Property="CornerRadius" Value="{DynamicResource SmallCornerRadius}" />
- <Setter Property="Foreground" Value="{DynamicResource SukiText}" />
- <Setter Property="SelectionBrush" Value="{DynamicResource SukiPrimaryColor75}" />
- <Setter Property="MinHeight" Value="36" />
- <Setter Property="Padding" Value="10,8" />
- <Setter Property="ContextFlyout" Value="{StaticResource DefaultTextBoxContextFlyout}" />
- <Setter Property="Template">
- <ControlTemplate>
- <suki:GlassCard Name="PART_GlassBorder"
- Padding="{TemplateBinding Padding}"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- CornerRadius="{TemplateBinding CornerRadius}">
- <suki:GlassCard.Transitions>
- <Transitions>
- <BrushTransition Property="BorderBrush" Duration="0:0:0.15" />
- </Transitions>
- </suki:GlassCard.Transitions>
- <DockPanel x:Name="PART_InnerDockPanel"
- LastChildFill="True"
- VerticalSpacing="3">
- <TextBlock Name="PART_FloatingWatermark"
- DockPanel.Dock="Top"
- Foreground="{DynamicResource SukiPrimaryColor}"
- Text="{TemplateBinding Watermark}">
- <TextBox.IsVisible>
- <MultiBinding Converter="{x:Static BoolConverters.And}">
- <TemplateBinding Converter="{x:Static StringConverters.IsNotNullOrEmpty}" Property="Watermark" />
- <TemplateBinding Property="UseFloatingWatermark" />
- </MultiBinding>
- </TextBox.IsVisible>
- </TextBlock>
- <Grid HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- ColumnDefinitions="Auto,*,Auto"
- ColumnSpacing="{StaticResource SukiTextBoxElementSpacing}">
- <StackPanel Grid.Column="0"
- Orientation="Horizontal"
- Spacing="{StaticResource SukiTextBoxElementSpacing}">
- <StackPanel.IsVisible>
- <MultiBinding Converter="{x:Static BoolConverters.Or}">
- <TemplateBinding Converter="{x:Static ObjectConverters.IsNotNull}" Property="InnerLeftContent" />
- <TemplateBinding Converter="{x:Static ObjectConverters.IsNotNull}" Property="suki:TextBoxExtensions.Prefix" />
- </MultiBinding>
- </StackPanel.IsVisible>
- <ContentPresenter VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
- Content="{TemplateBinding InnerLeftContent}"
- IsVisible="{TemplateBinding InnerLeftContent, Converter={x:Static ObjectConverters.IsNotNull}}" />
- <ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- Content="{TemplateBinding suki:TextBoxExtensions.Prefix}"
- FontSize="{TemplateBinding FontSize}"
- Foreground="{DynamicResource SukiLowText}"
- IsVisible="{TemplateBinding suki:TextBoxExtensions.Prefix, Converter={x:Static ObjectConverters.IsNotNull}}" />
- </StackPanel>
- <ScrollViewer Grid.Column="1"
- HorizontalScrollBarVisibility="{TemplateBinding (ScrollViewer.HorizontalScrollBarVisibility)}"
- VerticalScrollBarVisibility="{TemplateBinding (ScrollViewer.VerticalScrollBarVisibility)}">
- <ScrollViewer.Styles>
- <Style Selector="ScrollContentPresenter#PART_ContentPresenter">
- <Setter Property="Cursor" Value="IBeam" />
- </Style>
- </ScrollViewer.Styles>
- <Panel>
- <TextBlock Name="PART_Watermark"
- HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- Opacity="0.5"
- Text="{TemplateBinding Watermark}"
- TextAlignment="{TemplateBinding TextAlignment}"
- TextWrapping="{TemplateBinding TextWrapping}">
- <TextBlock.IsVisible>
- <MultiBinding Converter="{x:Static BoolConverters.And}">
- <Binding Converter="{x:Static StringConverters.IsNullOrEmpty}"
- ElementName="PART_TextPresenter"
- Path="PreeditText" />
- <TemplateBinding Converter="{x:Static StringConverters.IsNullOrEmpty}" Property="Text" />
- <TemplateBinding Converter="{x:Static BoolConverters.Not}" Property="UseFloatingWatermark" />
- </MultiBinding>
- </TextBlock.IsVisible>
- </TextBlock>
- <TextPresenter Name="PART_TextPresenter"
- HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- CaretBlinkInterval="{TemplateBinding CaretBlinkInterval}"
- CaretBrush="{DynamicResource SukiLowText}"
- CaretIndex="{TemplateBinding CaretIndex}"
- LetterSpacing="{TemplateBinding LetterSpacing}"
- LineHeight="{TemplateBinding LineHeight}"
- PasswordChar="{TemplateBinding PasswordChar}"
- RevealPassword="{TemplateBinding RevealPassword}"
- SelectionBrush="{TemplateBinding SelectionBrush}"
- SelectionEnd="{TemplateBinding SelectionEnd}"
- SelectionForegroundBrush="{TemplateBinding SelectionForegroundBrush}"
- SelectionStart="{TemplateBinding SelectionStart}"
- Text="{TemplateBinding Text, Mode=TwoWay}"
- TextAlignment="{TemplateBinding TextAlignment}"
- TextWrapping="{TemplateBinding TextWrapping}" />
- </Panel>
- </ScrollViewer>
- <StackPanel Grid.Column="2"
- Orientation="Horizontal"
- Spacing="{StaticResource SukiTextBoxElementSpacing}">
- <StackPanel.IsVisible>
- <MultiBinding Converter="{x:Static BoolConverters.Or}">
- <TemplateBinding Property="suki:TextBoxExtensions.AddDeleteButton" />
- <TemplateBinding Converter="{x:Static ObjectConverters.IsNotNull}" Property="InnerRightContent" />
- <TemplateBinding Property="DataValidationErrors.HasErrors" />
- </MultiBinding>
- </StackPanel.IsVisible>
- <ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- Content="{TemplateBinding InnerRightContent}"
- IsVisible="{TemplateBinding InnerRightContent, Converter={x:Static ObjectConverters.IsNotNull}}" />
- <suki:TextEraserButton VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- Cursor="Hand"
- IsVisible="{TemplateBinding suki:TextBoxExtensions.AddDeleteButton}"
- Opacity="{TemplateBinding Text, Converter={StaticResource StringToDoubleC}}"
- Text="{TemplateBinding Text, Mode=TwoWay}">
- <suki:TextEraserButton.Transitions>
- <Transitions>
- <DoubleTransition Property="Opacity" Duration="0:0:0.35" />
- </Transitions>
- </suki:TextEraserButton.Transitions>
- </suki:TextEraserButton>
- <DataValidationErrors/>
- </StackPanel>
- </Grid>
- </DockPanel>
- </suki:GlassCard>
- </ControlTemplate>
- </Setter>
- <Style Selector="^.FlatTextBox">
- <Setter Property="Background" Value="{DynamicResource SukiLightBorderBrush}" />
- <Setter Property="BorderBrush" Value="{DynamicResource SukiLightBorderBrush}" />
- <Style Selector="^ /template/ suki|GlassCard#border">
- <Setter Property="BorderThickness" Value="0" />
- </Style>
- <Style Selector="^ /template/ Panel#PART_GlassBorder">
- <Setter Property="ClipToBounds" Value="True" />
- </Style>
- </Style>
- <Style Selector="^.BottomBar">
- <Setter Property="BorderThickness" Value="0,0,0,1.5" />
- </Style>
- <Style Selector="^:disabled">
- <Setter Property="Opacity" Value="{DynamicResource ThemeDisabledOpacity}" />
- </Style>
- <Style Selector="^:pointerover, ^:focus">
- <Setter Property="BorderBrush" Value="{DynamicResource SukiPrimaryColor}" />
- </Style>
- <Style Selector="^:error">
- <Setter Property="BorderBrush" Value="{DynamicResource ErrorBrush}" />
- </Style>
- <Style Selector="^.NoShadow">
- <Setter Property="Background" Value="Transparent" />
- <Setter Property="BorderThickness" Value="0" />
- <Style Selector="^:pointerover, ^:focus">
- <Setter Property="Background" Value="Transparent" />
- <Setter Property="BorderBrush" Value="Transparent" />
- <Setter Property="BorderThickness" Value="0" />
- </Style>
- </Style>
- <Style Selector="^.clearButton[AcceptsReturn=False][IsReadOnly=False]:focus:not(TextBox:empty)">
- <Setter Property="InnerRightContent">
- <Template>
- <Button Command="{Binding $parent[TextBox].Clear}" Theme="{StaticResource SukiTextBoxButton}" />
- </Template>
- </Setter>
- </Style>
- <Style Selector="^.revealPasswordButton[AcceptsReturn=False][IsReadOnly=False]:not(TextBox:empty)">
- <Setter Property="InnerRightContent">
- <Template>
- <Border>
- <Border.Styles>
- <Style Selector="ToggleButton[IsChecked=True]">
- <Setter Property="(ToolTip.Tip)" Value="Hide Password" />
- </Style>
- <Style Selector="ToggleButton[IsChecked=False]">
- <Setter Property="(ToolTip.Tip)" Value="Show Password" />
- </Style>
- </Border.Styles>
- <ToggleButton IsChecked="{Binding $parent[TextBox].RevealPassword, Mode=TwoWay}" Theme="{StaticResource SukiTextBoxToggleButton}" />
- </Border>
- </Template>
- </Setter>
- </Style>
- </ControlTheme>
- <ControlTheme x:Key="{x:Type TextBox}"
- BasedOn="{StaticResource SukiTextBox}"
- TargetType="TextBox" />
- </ResourceDictionary>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement