zeKey開発中
2020/09/05
ようこそ zeKey software keyboard のページへ
ラベル:
zeKey
zeKeyとは
最初にお読みください 特徴と注意事項等
ダウンロード
ダウンロード方法
使い方
豊富な画像でわかりやすく説明します
同梱スキン
同梱スキンについて画像と簡単な説明
スキン作成ガイド
スキン作成について環境構築から丁寧に解説(更新中)
ブログ
解説ブログなのであまり関係のない記事は書きません
読みやすいように投稿日時を変更することがあります
2017/05/12
Ver. 1.1.0 差し替え
【更新履歴】
Ver. 1.1.0 2017/5/1 小変更・バグ修正
・スキン向きのコンテナコントロール追加。
・Keyboardスキンを上記コントロールで書き換え。
・タイプライター風スキンの小さいスペースキーに割り当てがなかった。
・落書きスキンで使用しているWidth HeightのBindingが効いていなかった。
・「エクスプローラーでスキンフォルダを開く」メニューが効かなかった。
・隠し属性とシステム属性のフォルダ&ファイルを表示しないようにした。
Ver. 1.1.0 2017/5/1 小変更・バグ修正
・スキン向きのコンテナコントロール追加。
・Keyboardスキンを上記コントロールで書き換え。
・タイプライター風スキンの小さいスペースキーに割り当てがなかった。
・落書きスキンで使用しているWidth HeightのBindingが効いていなかった。
・「エクスプローラーでスキンフォルダを開く」メニューが効かなかった。
・隠し属性とシステム属性のフォルダ&ファイルを表示しないようにした。
本日公開されました
2017/01/07
StackGrid
ラベル:
スキン作成
exe化されてしまうxamlでは気にはなっていましたが まあいいかと思っていたのですが スキンはテキストなのでGridの冗長さが非常に気になります
簡潔に書けるように StackPanelのような使い勝手の1行(1列)Gridを作りました
メリット
コントロールの追加や削除の際に数字を変えるのがほんと面倒でした
デメリット
子要素を重ねられないのはやや残念ですが 作りこむのが面倒だったのでそういう場面では素直にGridを使ってください
簡潔に書けるように StackPanelのような使い勝手の1行(1列)Gridを作りました
<Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="30" /> <ColumnDefinition /><!--<ColumnDefinition Width="*" />--> <ColumnDefinition Width="2*" /> </Grid.ColumnDefinitions> <Button Content="aaaaa" /> <Button Grid.Column="1" /> <Button Grid.Column="2" /> <Button Grid.Column="3" /> </Grid>これが
<z:StackGrid><!--<z:StackGrid Orientation="Horizontal">--> <Button z:StackGrid.Length="Auto" Content="aaaaa" /> <Button z:StackGrid.Length="30" /> <Button /><!--<Button z:StackGrid.Length="*" />--> <Button z:StackGrid.Length="2*" /> </z:StackGrid>こう書けます
メリット
- ColumnDefinitions(RowDefinitions)の行を削減できる
- Grid.Column="1"等を書かなくて済む
コントロールの追加や削除の際に数字を変えるのがほんと面倒でした
デメリット
- 1行または1列限定
- Grid.ColumnSpan(RowSpan)に当たるものがない
- 子要素を重ねられない
子要素を重ねられないのはやや残念ですが 作りこむのが面倒だったのでそういう場面では素直にGridを使ってください
2017/01/01
メモ帳でカスタマイズ
ラベル:
スキン作成
スキンファイルはテキストファイルですので メモ帳やテキストエディタで編集ができます
フルキーボード.xamlを例にメモ帳でも出来る範囲の改造をいくつか紹介します
メモ帳でフルキーボード.xamlを開き編集したら上書き保存をしてzeKeyでリロードします
"Space"を検索します
Content="Space"の部分を削除するか Content=""とします
もちろん Content="スペース"とすればカタカナで表示されます
その下に TypeKey="Space"とありますがそちらはいじってはいけません
TypeKeyはこのボタンが何キーかという指定なので 変えるとスペースキーと認識されなくなってしまいます
ちょっと大きすぎて間の抜けたテンキーの+キーは Content=" + "と両側にスペースを入れると少しはましになるかもしれません
"RightAlt"を検索します
<z:LRToggleButton Canvas.Left="450"
Canvas.Top="250"
Width="35"
Height="35"
Content="Alt"
TypeKey="RightAlt" />
を丸ごと削除します
そのすぐ下にTypeKey="RWin"とTypeKey="RightCtrl"のz:LRToggleButtonもあるので同様に削除します
フルキーボード.xamlでは各キーは絶対配置(左上座標と幅 高さ)での指定なので 削除した部分は何もないエリアになります
先ほどのRightAltのすぐ上にそのあたりのキーがあるので Canvas.Top="250"やWidth="35"の数字を大きくしてみてください
位置や大きさが変わるのが確認できると思います
ですがメモ帳で変更を上書き保存→zeKeyでリロードの繰り返し作業で あまりにも面倒すぎますね
実際キートップの文字変更以上のことは メモ帳には荷が重いと思いますので この次で説明するVisual Studioを使用してください
フルキーボード.xamlを例にメモ帳でも出来る範囲の改造をいくつか紹介します
メモ帳でフルキーボード.xamlを開き編集したら上書き保存をしてzeKeyでリロードします
キートップの文字の変更
Spaceキーの文字をなくしてみます"Space"を検索します
Content="Space"の部分を削除するか Content=""とします
もちろん Content="スペース"とすればカタカナで表示されます
その下に TypeKey="Space"とありますがそちらはいじってはいけません
TypeKeyはこのボタンが何キーかという指定なので 変えるとスペースキーと認識されなくなってしまいます
ちょっと大きすぎて間の抜けたテンキーの+キーは Content=" + "と両側にスペースを入れると少しはましになるかもしれません
数個のキーを削除する
右Alt Win Ctrlを削除してみます"RightAlt"を検索します
<z:LRToggleButton Canvas.Left="450"
Canvas.Top="250"
Width="35"
Height="35"
Content="Alt"
TypeKey="RightAlt" />
を丸ごと削除します
そのすぐ下にTypeKey="RWin"とTypeKey="RightCtrl"のz:LRToggleButtonもあるので同様に削除します
フルキーボード.xamlでは各キーは絶対配置(左上座標と幅 高さ)での指定なので 削除した部分は何もないエリアになります
キーの場所 大きさを変える
開いた空間がもったいないのでスペースキー変換キーを大きくしてみます先ほどのRightAltのすぐ上にそのあたりのキーがあるので Canvas.Top="250"やWidth="35"の数字を大きくしてみてください
位置や大きさが変わるのが確認できると思います
ですがメモ帳で変更を上書き保存→zeKeyでリロードの繰り返し作業で あまりにも面倒すぎますね
実際キートップの文字変更以上のことは メモ帳には荷が重いと思いますので この次で説明するVisual Studioを使用してください
スキン構造
ラベル:
スキン作成
通常WPFアプリケーションのxamlは
<Window>
<StackPanel>
<TextBlock />
<Button />
</StackPanel>
</Window>
のような作りになります(属性は省略)
Windowがルート要素になりラベルやボタンとレイアウトを決めるコンテナ等で構成され
それぞれに属性を設定することで好みのデザインにしていきます
zeKeyのスキンではz:Keyboardという専用のコントロールをルート要素にします
z:Keyboardには自動で隠れる機能 それを設定する属性や概要のための属性 隠れた(出た)イベント等必要なすべての機能が用意されています
そして適切なコンテナを挟んで ソフトキーボードのキー用に最適化された z:LRButtonやz:LRRepeatButtonを必要な個数レイアウトし
<z:Keyboard>
<StackPanel>
<z:LRButton />
<z:LRRepeatButton />
</StackPanel>
</z:Keyboard>
といった構造になります
<Window>
<StackPanel>
<TextBlock />
<Button />
</StackPanel>
</Window>
のような作りになります(属性は省略)
Windowがルート要素になりラベルやボタンとレイアウトを決めるコンテナ等で構成され
それぞれに属性を設定することで好みのデザインにしていきます
zeKeyのスキンではz:Keyboardという専用のコントロールをルート要素にします
z:Keyboardには自動で隠れる機能 それを設定する属性や概要のための属性 隠れた(出た)イベント等必要なすべての機能が用意されています
そして適切なコンテナを挟んで ソフトキーボードのキー用に最適化された z:LRButtonやz:LRRepeatButtonを必要な個数レイアウトし
<z:Keyboard>
<StackPanel>
<z:LRButton />
<z:LRRepeatButton />
</StackPanel>
</z:Keyboard>
といった構造になります
2016/12/31
スキン作成時の注意点
ラベル:
スキン作成
トグルボタンはFocusable="False"にセットする
<ToggleButton Focusable="False"/>スキンを開いた直後等キーボードフォーカスが他のウィンドウにない状態の時
トグルボタンを押した後 エンターキーやスペースキーでトグルボタンが押されてしまう
トグルボタンの動作としては合っているが ソフトキーボードとしては余計な動作なのでFalseに設定し無効にする
z:LRToggleButtonはデフォルトでFalseになっているので設定不要
ControlTemplateにTargetTypeがない時のTemplateBinding
'System.Xaml.XamlObjectWriterException' が出るが普通に動いている気がする
RelativeSource TemplatedParentにするか TargetType指定で消えた
ResourcesのSolidColorBrushはソートし表示される
x:Keyの名前順にソートするので それを踏まえて名前を付けていただくと見やすくなりますスペースも許容されるので利用してください
エスケープ
xmlと同じですよく使うもの
&: &
>: >
<: <
": "
': '
&#[10進数]; または &#x[16進数];
と
はどちらも改行「\n」です
xaml固有のものは「{}」があります
""の最初に「{」を置く場合Binding等と混同しないよう"{}{"とする必要があります
スキン作成 プロジェクト
ラベル:
スキン作成
登録:
投稿
(
Atom
)