プロパティー:MouseMove
マウスを移動したときの値の変化を(プロパティー MouseMove を介して)読み取る方法を紹介します。
# mouseMove.py def _Controls(self, target): controls = xaml_controls(self) for e in target: setattr(self, e, controls[e]) for e in "RGB": getattr(self, e).MouseMove += self.mouseMove
なにか状態が変化したときに、特定の処理をさせたいときには、イベントハンドラーを設定しておくと便利です。プロパティー .MouseMove に登録された、イベントハンドラー mouseMove は、スライダーの上でマウスを移動したときに起動されます。
def mouseMove(self, sender, e): s = sender.Value self.textBlock.Text = `s` self.colorBox.Background = self._Background()
イベントハンドラーでは、マウスを移動したときの処理を記述します。スライダーの値 sender.Value を読み取って、その値をもとに背景色 colorBox.Background を設定します。
def _Background(self):
color = {}
for e in "RGB":
color[e] = int(getattr(self, e).Value)
return SolidColorBrush(
Color.FromRgb(color["R"], color["G"], color["B"]))
各スライダー(R/G/B)の値 .Value を読み取って、その値をもとにブラシ SolidColorBrush の色を決定します。