DelFusa Blog 総本山

プログラミングの話題とかです。

NEW | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

ザムル野郎が憎い


  ∧,,∧# 糞gァ
  ミ,, ゚Дミ 
 ミ  ∪  
 ,と,,と,,,)  


いらっとくる。頭にくる...憎い...
WPFのXAMLだ。

ほんと、この糞な仕組みには閉口させてもらえます。
ちょっとやりたかったことは、
ボタンクリックでボタン下部からブルダウンするメニューを作りたかった。
それだけだぜ。

それだけ。

ふつう、PopupMenuとかContextMenuコントロールがあるべきだと思うんだが
そういうものは、WPFには存在しないのだよ。


それだけやりたい事のために、さんざん調べて調べて調べて
雑音みたいなページをたどってたどってたどって、
もっとも有力なのはこれ。
Silverlight/WPFで使える逆引きTips集 ――メニュー機能(9/9):CodeZine
http://codezine.jp/article/detail/5769?p=9

おなじ著者のブログのページもあったりするけど、
結局のところ、コンテキストメニューを"開く"方法
リソースから見つける方法は書かれてない。

大野元久氏の書いたのもあるけど
[C#/XAML] WPF と Windows フォームのメニューの違い (Windows フォームから WPF へ) - Windows desktop samples
http://code.msdn.microsoft.com/windowsdesktop/CVBXAML-WPF-Windows-22c6b702

これは、コンテキストメニューについては書かれてない。

WPF で DropDown メニューボタン | アカベコマイリ
http://akabeko.sakura.ne.jp/blog/2009/10/wpf-%E3%81%A7-dropdown-%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%9C%E3%82%BF%E3%83%B3/

コントロールを導入するほど大げさではなく、開発はvb.net系なのと、オプソを利用するのも気が引けるのでパス。

で、その程度の事をやるために、他にも10ページ20ページたどっても、やり方が見つかりやしねえ。
WPFの開発は日々こんなのばっかりですよ。

いっつも、直感的じゃない。

テクニックサイトには
普通のメインメニューや
右クリックして自動で開くコンテキストメニューのやり方は書いてあるけど

俺の今やりたいことは少し違うから、探せど、探せど、まともな情報にはたどりつかない。

で、
で、結局のところ、応用して工夫してこういうのを作った。
ユーザーコントロールのXAML
<UserControl …>
  <UserControl.Resources>
    <ContextMenu x:Key=”MenuA”>
      <MenuItem Header=”1” />
      <MenuItem Header=”2” />
    </ContextMenu>
    <ContextMenu x:Key=”MenuB”>
      <MenuItem Header=”3” />
      <MenuItem Header=”4” />
    </ContextMenu>
  </UserControl.Resources>
  <Grid>…</Grid>

ユーザーコントロール内のボタンイベントでこのように書く
Dim PopupMenu As ContextMenu = CType(Resources("MenuA"), ContextMenu)
PopupMenu.IsOpen = True

これで、メニューがポップアップする。

はーーー、めんどっくさい。

位置指定方法は、、、アカベコマイリさんのコード見てわかったよ。


スポンサーサイト

| 未分類 | 22:10 | comments:0 | trackbacks(-) | TOP↑

COMMENT















非公開コメント

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。