# -*- coding: utf-8 -*-
#===============================================================================
# Copyright (C) 2000-2008, 小泉ひよ子とタマゴ倶楽部
#
# History: WPF examples
# 2008/01/25, IronPython 1.1.1 (download)
# 2008/08/22, IronPython 1.1.2 (download)
# 2008/03/16, ver.2.0, WPF
# 2008/00/00, ver.2.1, IronPython 1.1.2
#===============================================================================
from _ant import *
from System.Collections.ObjectModel import *
from System.Windows import *
from System.Windows.Media import *
## --------------------
class ColorItem:
def __init__(self, name):
e = getattr(Brushes, name).Color
self.name = name
self.red = e.R
self.green = e.G
self.blue = e.B
def __str__(self):
return "'%s'(%d,%d,%d)"%(
self.name, self.red, self.green, self.blue)
## --------------------
class ExWindow(Window):
def __init__(self, Content=None, **args):
self.InitializeComponent(Content)
self.init()
def InitializeComponent(self, Content):
self.Content = LoadXaml(Content)
def init(self):
target = "listView", "colorBox"
self._Controls(target)
self.listView.ItemsSource = ObservableCollection[object]()
for e in self.colorBrushes():
self.listView.ItemsSource.Add(ColorItem(e))
self.listView.SelectionChanged += self.selectionChanged
def _Controls(self, target):
controls = xaml_controls(self)
for e in target:
setattr(self, e, controls[e])
def colorBrushes(self):
return [e for e in dir(Brushes)
if isinstance(getattr(Brushes, e), SolidColorBrush)]
def selectionChanged(self, sender, e):
e = sender.SelectedItem
print e
self.colorBox.Background = getattr(Brushes, e.name)
## --------------------
if __name__ == "__main__":
xaml = __file__.replace(".py",".xaml")
win = ExWindow(
Title=xaml,
Width=380, Height=150,
Content=xaml,
)
Application().Run(win)
## --------------------