Form1.cs


class ButtonMenu_WPF(Window): # Form

  • Form に代えて、Window を拡張しています。


def __init__(self, **args):
self.InitializeComponent()
self.init()

def init(self):
evh = self.commandClick
self.btRed.Click += evh
file = MenuItem(Header="File") # MenuItem("File")
self.main.Items.Add(file) # .MenuItems
mnflo = FileOpen()
mnflo.Click += evh
fex = FileExit(frm=self)
fex.Click += evh
for e in mnflo, fex:
file.Items.Add(e) # .MenuItems

  • Header に値を設定しています。
  • MenuItems に代えて、Items にメニュー項目を追加します。


def _btRed(self):
e = RedButton(
Name = "btRed",
Width=75, Height=32, # Size = Size(75, 32)
Content = "Red", # .Text
)
Canvas.SetLeft(e, 88) # Location = Point(88, 48)
Canvas.SetTop (e, 48)
return e

  • Size に代えて、Width/Height に値を設定しています。
  • Text に代えて、Content に値を設定しています。
  • Location に代えて、SetLeft/SetTop を利用しています。


def _Controls(self):
self.Width = 272 # ClientSize = Size(272, 141)
self.Height = 141
self.Content = StackPanel()
self.main = Menu() # MainMenu
canvas = Canvas(Width=self.Width, Height=self.Height)
for e in self.main, canvas:
self.Content.Children.Add(e)
canvas.Children.Add(self.btRed) # .Controls
#### self.Text = "Command demo"

  • ClientSize に代えて、Width/Height に値を設定しています。
  • @ Content @ StackPanel
  • MainMenu に代えて、Menu を利用しています。
  • @ Canvas
  • Controls に代えて、Children に各コントロールを追加します。


def InitializeComponent(self):
self.btRed = self._btRed()
self._Controls()

def commandClick(self, sender, e):
self._eventLog("commandClick", sender, e) # (@.@) keep a log
comd = sender
comd.Execute()

def _eventLog(self, s, sender, e):
print ">>> %s"%s
for e in sender, e:
print "... %s"%e