2016/11/23

同梱スキン - Keyboard.xaml


自分(T.N)用に作ったもの



<!--  zeKey skinfile  https://ze-key.blogspot.jp/  -->
<z:Keyboard xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:z="clr-namespace:zeKey.Skin;assembly=zeKey"
            x:Name="KB"
            Width="600"
            Height="300"
            z:DragMoveBehavior.CanMove="True">
  <z:Keyboard.SkinInfo>
    <z:SkinInfo Title="TN仕様キーボード"
                Author="T.Naga"
                License="改変自由"
                Version="1.0.0">
      <z:SkinInfo.Information>
        <TextBlock TextWrapping="Wrap">
          クリックで各キー打鍵
          <LineBreak />
          右クリックは[Shift]+各キー打鍵
          <LineBreak />
          修飾キー([Shift][Ctrl][Alt][Win])はクリックで押し込み 通常キー打鍵で押し込み解除
          <LineBreak />
          修飾キー右クリックはもう一度押すまで押し込み維持
          <LineBreak />
          スキン上ホイール回転で↑↓キー
          <LineBreak />
          <LineBreak />
          注意:
          <LineBreak />
          ・デフォルトで隠れる設定をTN仕様で設定済
          <LineBreak />
          ・[Esc][IME][Caps][無変換][変換][App][PS]キーは リピート無し設定
          <LineBreak />
          ・[PS]キー右クリックは[Alt]+[PS]
          <LineBreak />
          <LineBreak />
          詳しい説明は
          <z:Hyperlink NavigateUri="https://ze-key.blogspot.jp/">ブログ</z:Hyperlink>
          を参照してください
        </TextBlock>
      </z:SkinInfo.Information>
    </z:SkinInfo>
  </z:Keyboard.SkinInfo>
  <z:Keyboard.AutoHide>
    <z:AutoHide HideType="SlideTop"
                IsEnabled="True"
                OffsetY="1">
      <z:AutoHide.HideAnimation>
        <z:AutoHideAnimation Delay="1"
                             Duration="0:0:0.2"
                             Mode="Freaze" />
      </z:AutoHide.HideAnimation>
      <z:AutoHide.ShowAnimation>
        <z:AutoHideAnimation Delay="0.2"
                             Duration="0:0:0.2"
                             Mode="Delay" />
      </z:AutoHide.ShowAnimation>
    </z:AutoHide>
  </z:Keyboard.AutoHide>
  <z:Keyboard.Resources>
    <SolidColorBrush x:Key="キー トグルオン" Color="Red" />
    <SolidColorBrush x:Key="キー 押し込み" Color="Red" />
    <SolidColorBrush x:Key="キー 背景" Color="White" />
    <SolidColorBrush x:Key="キー 枠" Color="Black" />
    <SolidColorBrush x:Key="キーボード 背景" Color="#3FFF" />
    <SolidColorBrush x:Key="キーボード 枠" Color="Black" />
    <SolidColorBrush x:Key="キーボード 枠IMEオン" Color="Red" />
    <SolidColorBrush x:Key="文字" Color="Black" />
    <Style TargetType="{x:Type ButtonBase}">
      <Setter Property="Foreground" Value="{DynamicResource 文字}" />
      <Setter Property="Background" Value="{DynamicResource キー 背景}" />
      <Setter Property="BorderBrush" Value="{DynamicResource キー 枠}" />
      <Style.Triggers>
        <Trigger Property="IsPressed" Value="True">
          <Setter Property="Background" Value="{DynamicResource キー 押し込み}" />
        </Trigger>
        <Trigger Property="ToggleButton.IsChecked" Value="True">
          <Setter Property="Background" Value="{DynamicResource キー トグルオン}" />
        </Trigger>
      </Style.Triggers>
    </Style>
    <Style BasedOn="{StaticResource {x:Type ButtonBase}}" TargetType="{x:Type z:LRButton}" />
    <Style BasedOn="{StaticResource {x:Type ButtonBase}}" TargetType="{x:Type z:LRRepeatButton}" />
    <Style BasedOn="{StaticResource {x:Type ButtonBase}}" TargetType="{x:Type z:LRToggleButton}" />
    <Style x:Key="EnterKey"
           BasedOn="{StaticResource {x:Type z:LRRepeatButton}}"
           TargetType="{x:Type z:LRRepeatButton}">
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate TargetType="{x:Type z:LRRepeatButton}">
            <Grid x:Name="Target" RenderTransformOrigin="0.5,0.5">
              <Grid.RenderTransform>
                <ScaleTransform x:Name="ScaleTransform" />
              </Grid.RenderTransform>
              <Path HorizontalAlignment="Left"
                    VerticalAlignment="Top"
                    Data="M6,1 L14,1 30,1 96,1 C98.76,1 101,3.24 101,6 L101,80 C101,82.76 98.76,85 96,85 L14,85 C11.24,85 9,82.76 9,80 L9,41 6,41 C3.24,41 1,38.76 1,36 L1,6 C1,3.24 3.24,1 6,1 z"
                    Fill="{Binding Background,
                                   RelativeSource={RelativeSource TemplatedParent}}"
                    Stretch="Fill"
                    Stroke="{Binding BorderBrush,
                                     RelativeSource={RelativeSource TemplatedParent}}"
                    StrokeThickness="2" />
              <Viewbox Margin="16,4,10,4">
                <ContentPresenter />
              </Viewbox>
            </Grid>
            <ControlTemplate.Triggers>
              <EventTrigger RoutedEvent="MouseEnter">
                <BeginStoryboard>
                  <Storyboard>
                    <DoubleAnimation Duration="0:0:0.1"
                                     Storyboard.TargetName="Target"
                                     Storyboard.TargetProperty="RenderTransform.(ScaleTransform.ScaleX)"
                                     To="1.2" />
                    <DoubleAnimation Duration="0:0:0.1"
                                     Storyboard.TargetName="Target"
                                     Storyboard.TargetProperty="RenderTransform.(ScaleTransform.ScaleY)"
                                     To="1.2" />
                  </Storyboard>
                </BeginStoryboard>
              </EventTrigger>
              <EventTrigger RoutedEvent="MouseLeave">
                <BeginStoryboard>
                  <Storyboard>
                    <DoubleAnimation Duration="0:0:0.1"
                                     Storyboard.TargetName="Target"
                                     Storyboard.TargetProperty="RenderTransform.(ScaleTransform.ScaleX)"
                                     To="1" />
                    <DoubleAnimation Duration="0:0:0.1"
                                     Storyboard.TargetName="Target"
                                     Storyboard.TargetProperty="RenderTransform.(ScaleTransform.ScaleY)"
                                     To="1" />
                  </Storyboard>
                </BeginStoryboard>
              </EventTrigger>
              <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Panel.ZIndex" Value="1" />
              </Trigger>
            </ControlTemplate.Triggers>
          </ControlTemplate>
        </Setter.Value>
      </Setter>
    </Style>
  </z:Keyboard.Resources>
  <z:Keyboard.InputBindings>
    <MouseBinding Command="{Binding LRButtonCommand}"
                  CommandParameter="{Binding ElementName=Up}"
                  Gesture="{z:WheelUp}" />
    <MouseBinding Command="{Binding LRButtonCommand}"
                  CommandParameter="{Binding ElementName=Down}"
                  Gesture="{z:WheelDown}" />
  </z:Keyboard.InputBindings>
  <Grid>
    <Border Background="{DynamicResource キーボード 背景}"
            BorderThickness="3"
            CornerRadius="20">
      <Border.Style>
        <Style TargetType="{x:Type Border}">
          <Setter Property="BorderBrush" Value="{DynamicResource キーボード 枠}" />
          <Style.Triggers>
            <DataTrigger Binding="{Binding ModeKeys.ImeLock}" Value="true">
              <Setter Property="BorderBrush" Value="{DynamicResource キーボード 枠IMEオン}" />
            </DataTrigger>
          </Style.Triggers>
        </Style>
      </Border.Style>
    </Border>
    <Grid>
      <Grid.Style>
        <Style TargetType="{x:Type Grid}">
          <Setter Property="Visibility" Value="Visible" />
          <Style.Triggers>
            <DataTrigger Binding="{Binding AutoHide.State, ElementName=KB}" Value="{x:Static z:AnimeState.Hidden}">
              <Setter Property="Visibility" Value="Hidden" />
            </DataTrigger>
          </Style.Triggers>
        </Style>
      </Grid.Style>
      <Grid Margin="20,40,20,20">
        <Grid.RowDefinitions>
          <RowDefinition />
          <RowDefinition />
          <RowDefinition />
          <RowDefinition />
          <RowDefinition />
          <RowDefinition />
        </Grid.RowDefinitions>
        <Grid Margin="0,0,0,5">
          <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
          </Grid.ColumnDefinitions>
          <z:LRButton Content="Esc" TypeKey="Esc" />
          <z:LRRepeatButton Grid.Column="1"
                            Content="F1"
                            TypeKey="F1" />
          <z:LRRepeatButton Grid.Column="2"
                            Content="F2"
                            TypeKey="F2" />
          <z:LRRepeatButton Grid.Column="3"
                            Content="F3"
                            TypeKey="F3" />
          <z:LRRepeatButton Grid.Column="4"
                            Content="F4"
                            TypeKey="F4" />
          <z:LRRepeatButton Grid.Column="5"
                            Content="F5"
                            TypeKey="F5" />
          <z:LRRepeatButton Grid.Column="6"
                            Content="F6"
                            TypeKey="F6" />
          <z:LRRepeatButton Grid.Column="7"
                            Content="F7"
                            TypeKey="F7" />
          <z:LRRepeatButton Grid.Column="8"
                            Content="F8"
                            TypeKey="F8" />
          <z:LRRepeatButton Grid.Column="9"
                            Content="F9"
                            TypeKey="F9" />
          <z:LRRepeatButton Grid.Column="10"
                            Content="F10"
                            TypeKey="F10" />
          <z:LRRepeatButton Grid.Column="11"
                            Content="F11"
                            TypeKey="F11" />
          <z:LRRepeatButton Grid.Column="12"
                            Content="F12"
                            TypeKey="F12" />
          <z:LRButton Grid.Column="13"
                      Content="PS"
                      TypeKey="Snapshot">
            <z:LRButton.RightTypeKeys>
              <z:TypeKeys TypeKey="LeftAlt">
                <z:TypeKeys TypeKey="Snapshot" />
              </z:TypeKeys>
            </z:LRButton.RightTypeKeys>
          </z:LRButton>
          <z:LRRepeatButton Grid.Column="14"
                            Grid.ColumnSpan="2"
                            Margin="0,0,0,-5"
                            Content="DEL"
                            TypeKey="Delete" />
        </Grid>
        <Grid Grid.Row="1">
          <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
          </Grid.ColumnDefinitions>
          <z:LRButton Content="IME" TypeKey="KanjiMode">
            <z:LRButton.Style>
              <Style BasedOn="{StaticResource {x:Type z:LRButton}}" TargetType="{x:Type z:LRButton}">
                <Style.Triggers>
                  <DataTrigger Binding="{Binding ModeKeys.ImeLock}" Value="true">
                    <Setter Property="Background" Value="{DynamicResource キーボード 枠IMEオン}" />
                  </DataTrigger>
                </Style.Triggers>
              </Style>
            </z:LRButton.Style>
          </z:LRButton>
          <z:LRRepeatButton Grid.Column="1"
                            Content="1 !"
                            TypeKey="D1" />
          <z:LRRepeatButton Grid.Column="2"
                            Content="2 &quot;"
                            TypeKey="D2" />
          <z:LRRepeatButton Grid.Column="3"
                            Content="3 #"
                            TypeKey="D3" />
          <z:LRRepeatButton Grid.Column="4"
                            Content="4 $"
                            TypeKey="D4" />
          <z:LRRepeatButton Grid.Column="5"
                            Content="5 %"
                            TypeKey="D5" />
          <z:LRRepeatButton Grid.Column="6"
                            Content="6 &amp;"
                            TypeKey="D6" />
          <z:LRRepeatButton Grid.Column="7"
                            Content="7 '"
                            TypeKey="D7" />
          <z:LRRepeatButton Grid.Column="8"
                            Content="8 ("
                            TypeKey="D8" />
          <z:LRRepeatButton Grid.Column="9"
                            Content="9 )"
                            TypeKey="D9" />
          <z:LRRepeatButton Grid.Column="10"
                            Content="0  "
                            TypeKey="D0" />
          <z:LRRepeatButton Grid.Column="11"
                            Content="- ="
                            TypeKey="OemMinus" />
          <z:LRRepeatButton Grid.Column="12"
                            Content="^ ~"
                            TypeKey="OemQuotes" />
          <z:LRRepeatButton Grid.Column="13"
                            Content="\ |"
                            TypeKey="Oem5" />
          <z:LRRepeatButton Grid.Column="14"
                            Grid.ColumnSpan="2"
                            Content="BS"
                            TypeKey="Backspace" />
        </Grid>
        <Grid Grid.Row="2">
          <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1.3*" />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition Width="2.7*" />
          </Grid.ColumnDefinitions>
          <z:LRRepeatButton Content="Tab" TypeKey="Tab" />
          <z:LRRepeatButton Grid.Column="1"
                            Content="q"
                            TypeKey="Q" />
          <z:LRRepeatButton Grid.Column="2"
                            Content="w"
                            TypeKey="W" />
          <z:LRRepeatButton Grid.Column="3"
                            Content="e"
                            TypeKey="E" />
          <z:LRRepeatButton Grid.Column="4"
                            Content="r"
                            TypeKey="R" />
          <z:LRRepeatButton Grid.Column="5"
                            Content="t"
                            TypeKey="T" />
          <z:LRRepeatButton Grid.Column="6"
                            Content="y"
                            TypeKey="Y" />
          <z:LRRepeatButton Grid.Column="7"
                            Content="u"
                            TypeKey="U" />
          <z:LRRepeatButton Grid.Column="8"
                            Content="i"
                            TypeKey="I" />
          <z:LRRepeatButton Grid.Column="9"
                            Content="o"
                            TypeKey="O" />
          <z:LRRepeatButton Grid.Column="10"
                            Content="p"
                            TypeKey="P" />
          <z:LRRepeatButton Grid.Column="11"
                            Content="@ `"
                            TypeKey="Oem3" />
          <z:LRRepeatButton Grid.Column="12"
                            Content="[ {"
                            TypeKey="OemOpenBrackets" />
        </Grid>
        <Grid Grid.Row="3">
          <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1.5*" />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition Width="2.5*" />
          </Grid.ColumnDefinitions>
          <z:LRButton Content="Caps" TypeKey="CapsLock">
            <z:LRButton.Style>
              <Style BasedOn="{StaticResource {x:Type z:LRButton}}" TargetType="{x:Type z:LRButton}">
                <Style.Triggers>
                  <DataTrigger Binding="{Binding ModeKeys.CapsLock}" Value="true">
                    <Setter Property="Background" Value="{DynamicResource キー トグルオン}" />
                  </DataTrigger>
                </Style.Triggers>
              </Style>
            </z:LRButton.Style>
          </z:LRButton>
          <z:LRRepeatButton Grid.Column="1"
                            Content="a"
                            TypeKey="A" />
          <z:LRRepeatButton Grid.Column="2"
                            Content="s"
                            TypeKey="S" />
          <z:LRRepeatButton Grid.Column="3"
                            Content="d"
                            TypeKey="D" />
          <z:LRRepeatButton Grid.Column="4"
                            Content="f"
                            TypeKey="F" />
          <z:LRRepeatButton Grid.Column="5"
                            Content="g"
                            TypeKey="G" />
          <z:LRRepeatButton Grid.Column="6"
                            Content="h"
                            TypeKey="H" />
          <z:LRRepeatButton Grid.Column="7"
                            Content="j"
                            TypeKey="J" />
          <z:LRRepeatButton Grid.Column="8"
                            Content="k"
                            TypeKey="K" />
          <z:LRRepeatButton Grid.Column="9"
                            Content="l"
                            TypeKey="L" />
          <z:LRRepeatButton Grid.Column="10"
                            Content="; +"
                            TypeKey="OemPlus" />
          <z:LRRepeatButton Grid.Column="11"
                            Content=": *"
                            TypeKey="Oem1" />
          <z:LRRepeatButton Grid.Column="12"
                            Content="] }"
                            TypeKey="OemCloseBrackets" />
        </Grid>
        <Grid Grid.Row="4">
          <Grid.ColumnDefinitions>
            <ColumnDefinition Width="2*" />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
          </Grid.ColumnDefinitions>
          <z:LRToggleButton Content="Shift" TypeKey="Shift" />
          <z:LRRepeatButton Grid.Column="1"
                            Content="z"
                            TypeKey="Z" />
          <z:LRRepeatButton Grid.Column="2"
                            Content="x"
                            TypeKey="X" />
          <z:LRRepeatButton Grid.Column="3"
                            Content="c"
                            TypeKey="C" />
          <z:LRRepeatButton Grid.Column="4"
                            Content="v"
                            TypeKey="V" />
          <z:LRRepeatButton Grid.Column="5"
                            Content="b"
                            TypeKey="B" />
          <z:LRRepeatButton Grid.Column="6"
                            Content="n"
                            TypeKey="N" />
          <z:LRRepeatButton Grid.Column="7"
                            Content="m"
                            TypeKey="M" />
          <z:LRRepeatButton Grid.Column="8"
                            Content=", &lt;"
                            TypeKey="OemComma" />
          <z:LRRepeatButton Grid.Column="9"
                            Content=". &gt;"
                            TypeKey="OemPeriod" />
          <z:LRRepeatButton Grid.Column="10"
                            Content="/ ?"
                            TypeKey="OemQuestion" />
          <z:LRRepeatButton Grid.Column="11"
                            Content="\ _"
                            FontFamily="Arial"
                            TypeKey="OemBackslash" />
          <z:LRRepeatButton x:Name="Up"
                            Grid.Column="13"
                            Content="↑"
                            TypeKey="Up" />
        </Grid>
        <Grid Grid.Row="5">
          <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1.5*" />
            <ColumnDefinition />
            <ColumnDefinition Width="1.5*" />
            <ColumnDefinition Width="1.5*" />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition Width="1.5*" />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
          </Grid.ColumnDefinitions>
          <z:LRToggleButton Content="Ctrl" TypeKey="Ctrl" />
          <z:LRToggleButton Grid.Column="1"
                            Content="Win"
                            TypeKey="Win" />
          <z:LRToggleButton Grid.Column="2"
                            Content="Alt"
                            TypeKey="Alt" />
          <z:LRButton Grid.Column="3"
                      Content=" 無変換 "
                      TypeKey="ImeNonConvert" />
          <z:LRRepeatButton Grid.Column="4"
                            Grid.ColumnSpan="5"
                            Content=""
                            TypeKey="Space" />
          <z:LRButton Grid.Column="9"
                      Content="  変換  "
                      TypeKey="ImeConvert" />
          <z:LRButton Grid.Column="10"
                      Content="App"
                      TypeKey="Apps" />
          <z:LRRepeatButton Grid.Column="11"
                            Content="←"
                            TypeKey="Left" />
          <z:LRRepeatButton x:Name="Down"
                            Grid.Column="12"
                            Content="↓"
                            TypeKey="Down" />
          <z:LRRepeatButton Grid.Column="13"
                            Content="→"
                            TypeKey="Right" />
        </Grid>
      </Grid>
      <Grid Margin="20,40,20,20">
        <Grid.RowDefinitions>
          <RowDefinition />
          <RowDefinition />
          <RowDefinition />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="13.3*" />
          <ColumnDefinition Width="2.7*" />
        </Grid.ColumnDefinitions>
        <z:LRRepeatButton Grid.Row="1"
                          Grid.Column="1"
                          Margin="2"
                          Content=" Enter "
                          Style="{StaticResource EnterKey}"
                          TypeKey="Enter" />
      </Grid>

      <TextBlock Margin="10,12,0,0"
                 HorizontalAlignment="Left"
                 VerticalAlignment="Top"
                 FontFamily="Gabriola"
                 FontSize="24"
                 Text="zeKey">
        <TextBlock.RenderTransform>
          <RotateTransform Angle="-25" />
        </TextBlock.RenderTransform>
      </TextBlock>
      <z:ResizeGrip Background="#01FFFFFF" BorderThickness="0,0,3,3">
        <z:ResizeGrip.Style>
          <Style TargetType="{x:Type z:ResizeGrip}">
            <Setter Property="Foreground" Value="{DynamicResource キーボード 枠}" />
            <Setter Property="BorderBrush" Value="{DynamicResource キーボード 枠}" />
            <Style.Triggers>
              <DataTrigger Binding="{Binding ModeKeys.ImeLock}" Value="true">
                <Setter Property="BorderBrush" Value="{DynamicResource キーボード 枠IMEオン}" />
                <Setter Property="Foreground" Value="{DynamicResource キーボード 枠IMEオン}" />
              </DataTrigger>
            </Style.Triggers>
          </Style>
        </z:ResizeGrip.Style>
      </z:ResizeGrip>
    </Grid>
  </Grid>
</z:Keyboard>

0 件のコメント :

コメントを投稿