2016/08/05

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


  1. <!-- zeKey skinfile https://ze-key.blogspot.jp/ -->
  2. <z:Keyboard xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:z="clr-namespace:zeKey.Skin;assembly=zeKey"
  5. Width="300"
  6. Height="72"
  7. z:DragMoveBehavior.CanMove="True"
  8. Background="{DynamicResource 背景}"
  9. Foreground="{DynamicResource 文字}">
  10. <z:Keyboard.Resources>
  11. <SolidColorBrush x:Key="文字" Color="Black" />
  12. <SolidColorBrush x:Key="背景" Color="White" />
  13. </z:Keyboard.Resources>
  14. <Grid>
  15. <Viewbox>
  16. <TextBlock>
  17. Hello, world!
  18. </TextBlock>
  19. </Viewbox>
  20. <z:ResizeGrip />
  21. </Grid>
  22. </z:Keyboard>
  23.  
  24. <!--
  25. <z:Keyboard.Resources>というタグが出てきました
  26. 使いまわしたいブラシやスタイルの置き場です
  27. 詳しい説明は省きますがzeKeyの機能により
  28. SolidColorBrush(単色ブラシ)は色の変更ができるようになります
  29. x:KeyにzeKeyの色タブで表示される文字 Colorに初期設定色を指定して
  30. "{DynamicResource 背景}"のように参照します
  31.  
  32. 色をリアルタイムで変更可能になりましたが つまみの色まで変わってしまいました
  33. 親の属性の値が子要素に引き継がれるものがあります FontSizeもそうでした
  34. z:KeyboardのBackground Foreground指定が
  35. TextBlock z:ResizeGripに引き継がれて色が変わります
  36. 20行目を
  37. <z:ResizeGrip Foreground="Black"/>
  38. に変えてください 新たに指定した場合は 引き継いだ規定値より優先されます
  39. こうするとテキストだけが変わるようになります
  40. -->
SolidColorBrushを色のように扱っていますが 正確にはBrushは色ではなく塗りです
なのでグラデーションブラシや画像ブラシ等もあります
Background等の属性はほとんどの場合 Brushを要求するので簡単に指定できるようにSolidColorBrushで指定することにしています
グラデーションは別の機会に解説します

0 件のコメント :

コメントを投稿