2016/08/05

チュートリアル 05 zeKeyで色変更


<!--  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"
            Width="300"
            Height="72"
            z:DragMoveBehavior.CanMove="True"
            Background="{DynamicResource 背景}"
            Foreground="{DynamicResource 文字}">
  <z:Keyboard.Resources>
    <SolidColorBrush x:Key="文字" Color="Black" />
    <SolidColorBrush x:Key="背景" Color="White" />
  </z:Keyboard.Resources>
  <Grid>
    <Viewbox>
      <TextBlock>
        Hello, world!
      </TextBlock>
    </Viewbox>
    <z:ResizeGrip />
  </Grid>
</z:Keyboard>

<!--
  <z:Keyboard.Resources>というタグが出てきました
  使いまわしたいブラシやスタイルの置き場です
  詳しい説明は省きますがzeKeyの機能により
  SolidColorBrush(単色ブラシ)は色の変更ができるようになります
  x:KeyにzeKeyの色タブで表示される文字 Colorに初期設定色を指定して
  "{DynamicResource 背景}"のように参照します

  色をリアルタイムで変更可能になりましたが つまみの色まで変わってしまいました
  親の属性の値が子要素に引き継がれるものがあります FontSizeもそうでした
  z:KeyboardのBackground Foreground指定が
  TextBlock z:ResizeGripに引き継がれて色が変わります
  20行目を
    <z:ResizeGrip Foreground="Black"/>
  に変えてください 新たに指定した場合は 引き継いだ規定値より優先されます
  こうするとテキストだけが変わるようになります
-->
SolidColorBrushを色のように扱っていますが 正確にはBrushは色ではなく塗りです
なのでグラデーションブラシや画像ブラシ等もあります
Background等の属性はほとんどの場合 Brushを要求するので簡単に指定できるようにSolidColorBrushで指定することにしています
グラデーションは別の機会に解説します

0 件のコメント :

コメントを投稿