プロパティー: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 の色を決定します。