162 lines
8.1 KiB
XML
162 lines
8.1 KiB
XML
<ResourceDictionary
|
|
xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:converters="clr-namespace:Ursa.Themes.Semi.Converters"
|
|
xmlns:u="https://irihi.tech/ursa">
|
|
<Design.PreviewWith>
|
|
<StackPanel Margin="20">
|
|
<u:PathPicker Title="Hello World" Width="300" />
|
|
</StackPanel>
|
|
</Design.PreviewWith>
|
|
<ControlTheme x:Key="{x:Type u:PathPicker}" TargetType="u:PathPicker">
|
|
<Setter Property="CornerRadius" Value="3" />
|
|
<Setter Property="Template">
|
|
<ControlTemplate>
|
|
<DockPanel>
|
|
<Button
|
|
Name="{x:Static u:PathPicker.PART_Button}"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Center"
|
|
Content="{TemplateBinding Title}"
|
|
DockPanel.Dock="Right" />
|
|
<TextBox
|
|
Name="PART_TextBox"
|
|
AcceptsReturn="{TemplateBinding AllowMultiple}"
|
|
DockPanel.Dock="Left"
|
|
Text="{TemplateBinding SelectedPathsText,
|
|
Mode=TwoWay}" />
|
|
</DockPanel>
|
|
</ControlTemplate>
|
|
</Setter>
|
|
|
|
<Style Selector="^ /template/ Button#PART_Button:pressed">
|
|
<Setter Property="RenderTransform" Value="{x:Null}" />
|
|
</Style>
|
|
|
|
<Style Selector="^ /template/ Button#PART_Button">
|
|
<Setter Property="DockPanel.Dock" Value="Right" />
|
|
<Setter Property="VerticalAlignment" Value="Center" />
|
|
<Setter Property="CornerRadius" Value="{TemplateBinding CornerRadius, Converter={x:Static converters:CornerRadiusTakeConverter.Right}}" />
|
|
<Setter Property="Margin" Value="1 0 0 0" />
|
|
</Style>
|
|
<Style Selector="^ /template/ TextBox#PART_TextBox">
|
|
<Setter Property="DockPanel.Dock" Value="Left" />
|
|
<Setter Property="CornerRadius" Value="{TemplateBinding CornerRadius, Converter={x:Static converters:CornerRadiusTakeConverter.Left}}" />
|
|
</Style>
|
|
<Style Selector="^.Top">
|
|
<Style Selector="^ /template/ Button#PART_Button">
|
|
<Setter Property="DockPanel.Dock" Value="Top" />
|
|
<Setter Property="CornerRadius" Value="{TemplateBinding CornerRadius, Converter={x:Static converters:CornerRadiusTakeConverter.Top}}" />
|
|
<Setter Property="Margin" Value="0 0 0 1" />
|
|
</Style>
|
|
<Style Selector="^ /template/ TextBox#PART_TextBox">
|
|
<Setter Property="DockPanel.Dock" Value="Bottom" />
|
|
<Setter Property="CornerRadius" Value="{TemplateBinding CornerRadius, Converter={x:Static converters:CornerRadiusTakeConverter.Bottom}}" />
|
|
</Style>
|
|
</Style>
|
|
</ControlTheme>
|
|
|
|
|
|
<ControlTheme x:Key="ButtonPathPicker" TargetType="u:PathPicker">
|
|
<Setter Property="Template">
|
|
<ControlTemplate>
|
|
<Button
|
|
Name="{x:Static u:PathPicker.PART_Button}"
|
|
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
|
|
VerticalAlignment="{TemplateBinding VerticalAlignment}"
|
|
Content="{TemplateBinding Title}" />
|
|
</ControlTemplate>
|
|
</Setter>
|
|
<Style Selector="^ /template/ Button#PART_Button:pressed">
|
|
<Setter Property="RenderTransform" Value="{x:Null}" />
|
|
</Style>
|
|
</ControlTheme>
|
|
|
|
<ControlTheme x:Key="ListPathPicker" TargetType="u:PathPicker">
|
|
<Setter Property="CornerRadius" Value="3" />
|
|
<Setter Property="Template">
|
|
<ControlTemplate>
|
|
<Expander
|
|
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
|
|
VerticalAlignment="{TemplateBinding VerticalAlignment}"
|
|
CornerRadius="{TemplateBinding CornerRadius}"
|
|
Theme="{StaticResource INTERNAL_PathPickerExpander}">
|
|
<Expander.Header>
|
|
<Button
|
|
Name="PART_Button"
|
|
HorizontalAlignment="Stretch"
|
|
Content="{TemplateBinding Title}"
|
|
CornerRadius="{TemplateBinding CornerRadius,
|
|
Converter={x:Static converters:CornerRadiusTakeConverter.Left}}" />
|
|
</Expander.Header>
|
|
<ListBox ItemsSource="{TemplateBinding SelectedPaths}" />
|
|
</Expander>
|
|
</ControlTemplate>
|
|
</Setter>
|
|
<Style Selector="^ /template/ Button#PART_Button:pressed">
|
|
<Setter Property="RenderTransform" Value="{x:Null}" />
|
|
</Style>
|
|
</ControlTheme>
|
|
|
|
<ControlTheme x:Key="INTERNAL_PathPickerExpander" TargetType="Expander">
|
|
<Setter Property="Template">
|
|
<ControlTemplate>
|
|
<DockPanel>
|
|
<DockPanel DockPanel.Dock="Top" LastChildFill="True">
|
|
<ToggleButton
|
|
Name="ExpanderHeader"
|
|
Margin="1,0,0,0"
|
|
Background="{DynamicResource ToggleButtonDefaultBackground}"
|
|
CornerRadius="{TemplateBinding CornerRadius,
|
|
Converter={x:Static converters:CornerRadiusTakeConverter.Right}}"
|
|
DockPanel.Dock="Right"
|
|
IsChecked="{TemplateBinding IsExpanded,
|
|
Mode=TwoWay}"
|
|
Theme="{DynamicResource INTERNAL_PathPickerExpanderHeaderToggleButtonTheme}">
|
|
<PathIcon
|
|
Name="PART_PathIcon"
|
|
Data="{DynamicResource ExpanderIcon}"
|
|
Theme="{DynamicResource InnerPathIcon}">
|
|
<PathIcon.Transitions>
|
|
<Transitions>
|
|
<TransformOperationsTransition Property="RenderTransform" Duration="0.1" />
|
|
</Transitions>
|
|
</PathIcon.Transitions>
|
|
</PathIcon>
|
|
</ToggleButton>
|
|
<ContentPresenter Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}" />
|
|
</DockPanel>
|
|
<ContentPresenter
|
|
Name="PART_ContentPresenter"
|
|
Margin="{DynamicResource ExpanderContentMargin}"
|
|
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
|
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
|
Content="{TemplateBinding Content}"
|
|
ContentTemplate="{TemplateBinding ContentTemplate}"
|
|
Foreground="{DynamicResource ExpanderContentForeground}"
|
|
IsVisible="{TemplateBinding IsExpanded,
|
|
Mode=TwoWay}" />
|
|
</DockPanel>
|
|
</ControlTemplate>
|
|
</Setter>
|
|
|
|
<Style Selector="^:expanded /template/ PathIcon#PART_PathIcon">
|
|
<Setter Property="RenderTransform" Value="rotate(180deg)" />
|
|
</Style>
|
|
|
|
</ControlTheme>
|
|
|
|
<ControlTheme x:Key="INTERNAL_PathPickerExpanderHeaderToggleButtonTheme" TargetType="ToggleButton">
|
|
<Setter Property="Padding" Value="{DynamicResource ButtonDefaultPadding}" />
|
|
<Setter Property="Cursor" Value="Hand" />
|
|
<Setter Property="Template">
|
|
<ControlTemplate TargetType="ToggleButton">
|
|
<ContentPresenter
|
|
Padding="{TemplateBinding Padding}"
|
|
Background="{TemplateBinding Background}"
|
|
Content="{TemplateBinding Content}"
|
|
CornerRadius="{TemplateBinding CornerRadius}" />
|
|
</ControlTemplate>
|
|
</Setter>
|
|
</ControlTheme>
|
|
</ResourceDictionary> |