You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
8.7 KiB
124 lines
8.7 KiB
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:local="clr-namespace:Microsoft.Windows.Controls"
|
|
xmlns:chrome="clr-namespace:Microsoft.Windows.Controls.Chromes"
|
|
xmlns:coreConverters="clr-namespace:Microsoft.Windows.Controls.Core.Converters">
|
|
|
|
<coreConverters:InverseBoolConverter x:Key="InverseBoolConverter" />
|
|
|
|
<LinearGradientBrush x:Key="PopupDarkBorderBrush" EndPoint="0.5,1" StartPoint="0.5,0">
|
|
<GradientStop Color="#FFA3AEB9" Offset="0"/>
|
|
<GradientStop Color="#FF8399A9" Offset="0.375"/>
|
|
<GradientStop Color="#FF718597" Offset="0.375"/>
|
|
<GradientStop Color="#FF617584" Offset="1"/>
|
|
</LinearGradientBrush>
|
|
|
|
<LinearGradientBrush x:Key="PopupBackgroundBrush" StartPoint="0,0" EndPoint="0,1">
|
|
<LinearGradientBrush.GradientStops>
|
|
<GradientStopCollection>
|
|
<GradientStop Offset="0" Color="#FFffffff"/>
|
|
<GradientStop Offset="1" Color="#FFE8EBED"/>
|
|
</GradientStopCollection>
|
|
</LinearGradientBrush.GradientStops>
|
|
</LinearGradientBrush>
|
|
|
|
<Style x:Key="CalculatorToggleButtonStyle" TargetType="ToggleButton">
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="ToggleButton">
|
|
<Grid SnapsToDevicePixels="True">
|
|
<chrome:ButtonChrome x:Name="ToggleButtonChrome"
|
|
CornerRadius="0,2.75,2.75,0"
|
|
RenderChecked="{Binding IsOpen, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:CalculatorUpDown}}"
|
|
RenderEnabled="{Binding IsEnabled, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:CalculatorUpDown}}"
|
|
RenderMouseOver="{TemplateBinding IsMouseOver}"
|
|
RenderPressed="{TemplateBinding IsPressed}" >
|
|
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
|
|
|
|
<Grid x:Name="arrowGlyph" IsHitTestVisible="False" Grid.Column="1" Margin="5">
|
|
<Path Width="7" Height="4" Data="M 0,1 C0,1 0,0 0,0 0,0 3,0 3,0 3,0 3,1 3,1 3,1 4,1 4,1 4,1 4,0 4,0 4,0 7,0 7,0 7,0 7,1 7,1 7,1 6,1 6,1 6,1 6,2 6,2 6,2 5,2 5,2 5,2 5,3 5,3 5,3 4,3 4,3 4,3 4,4 4,4 4,4 3,4 3,4 3,4 3,3 3,3 3,3 2,3 2,3 2,3 2,2 2,2 2,2 1,2 1,2 1,2 1,1 1,1 1,1 0,1 0,1 z" Fill="#FF000000"/>
|
|
</Grid>
|
|
</Grid>
|
|
</chrome:ButtonChrome>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<DataTemplate x:Key="DefaultWatermarkTemplate">
|
|
<ContentControl Content="{Binding}" Foreground="Gray" Focusable="False" />
|
|
</DataTemplate>
|
|
|
|
<!-- =============================================================================== -->
|
|
<!-- CalculatorUpDown -->
|
|
<!-- =============================================================================== -->
|
|
|
|
<Style TargetType="{x:Type local:CalculatorUpDown}">
|
|
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
|
|
<Setter Property="BorderThickness" Value="1,1,0,1" />
|
|
<Setter Property="Focusable" Value="False" />
|
|
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/>
|
|
<Setter Property="HorizontalContentAlignment" Value="Right" />
|
|
<Setter Property="TextAlignment" Value="Right" />
|
|
<Setter Property="WatermarkTemplate" Value="{StaticResource DefaultWatermarkTemplate}" />
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type local:CalculatorUpDown}">
|
|
<Grid>
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<local:ButtonSpinner x:Name="Spinner" IsTabStop="False" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}"
|
|
AllowSpin="{TemplateBinding AllowSpin}" ShowButtonSpinner="{TemplateBinding ShowButtonSpinner}">
|
|
<local:WatermarkTextBox x:Name="TextBox" BorderThickness="0"
|
|
Background="{TemplateBinding Background}"
|
|
ContextMenu="{TemplateBinding ContextMenu}"
|
|
FontFamily="{TemplateBinding FontFamily}"
|
|
FontSize="{TemplateBinding FontSize}"
|
|
FontStretch="{TemplateBinding FontStretch}"
|
|
FontStyle="{TemplateBinding FontStyle}"
|
|
FontWeight="{TemplateBinding FontWeight}"
|
|
Foreground="{TemplateBinding Foreground}"
|
|
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
|
IsReadOnly="{Binding IsEditable, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolConverter}}"
|
|
MinWidth="20" AcceptsReturn="False"
|
|
TextAlignment="{TemplateBinding TextAlignment}"
|
|
TextWrapping="NoWrap"
|
|
TabIndex="{TemplateBinding TabIndex}"
|
|
Text="{Binding Text, RelativeSource={RelativeSource TemplatedParent}}"
|
|
Watermark="{TemplateBinding Watermark}"
|
|
WatermarkTemplate="{TemplateBinding WatermarkTemplate}"/>
|
|
</local:ButtonSpinner>
|
|
<ToggleButton x:Name="_calculatorToggleButton" Grid.Column="1"
|
|
IsChecked="{Binding IsOpen, RelativeSource={RelativeSource TemplatedParent}}"
|
|
Style="{StaticResource CalculatorToggleButtonStyle}"
|
|
IsHitTestVisible="{Binding IsOpen, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolConverter}}"/>
|
|
</Grid>
|
|
<Popup x:Name="PART_CalculatorPopup" IsOpen="{Binding IsChecked, ElementName=_calculatorToggleButton}" StaysOpen="False">
|
|
<Border BorderThickness="1" Background="{StaticResource PopupBackgroundBrush}" BorderBrush="{StaticResource PopupDarkBorderBrush}" Padding="3">
|
|
<StackPanel>
|
|
<local:Calculator x:Name="PART_Calculator" Background="Transparent" BorderThickness="0"
|
|
DisplayText="{Binding DisplayText, RelativeSource={RelativeSource TemplatedParent}}"
|
|
Memory="{Binding Memory, RelativeSource={RelativeSource TemplatedParent}}"
|
|
Precision="{Binding Precision, RelativeSource={RelativeSource TemplatedParent}}"
|
|
Value="{Binding Value, RelativeSource={RelativeSource TemplatedParent}}" />
|
|
</StackPanel>
|
|
</Border>
|
|
</Popup>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
</ResourceDictionary>
|