忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

Visual C# 2008 Express EditionでWPFアプリケーションを作っているときツールバーからアイテムをドラッグ&ドロップできない

先月は引越しやら何やらでゴタゴタまみれですっかりブログのサボり癖がついてしまいました。
リハビリとしてまずはちょっとしたことを書いておきます。

WPFでアイテムをツールバーからドラッグ&ドロップできない

ちょっと前から気になっていたことがありました。
VC#2008でWPFを作ってるときに、アイテムをツールバーからドラッグ&ドロップできないという問題です。

WPF、つまりWindows Presentation Foundationは、その前世代(?)のWindowsFormsと同じように、ユーザーインターフェースをドラッグ&ドロップでかんたんに作ることが出来ます(少なくとも、そういうことになっています)。
creatingWPFApplication.jpg

左側にToolboxというのがあってその中にButtonとかCheckBoxとか色んなアイテムがあり、そのアイテムをマウスでドラッグ&ドロップすることで右側のウィンドウに貼り付けることが出来るわけですね。これはWindows Formsと同じです。

ところが、昨年からそうだったのですが、それをやろうとしても×印が出てドロップできませんでした(仕方が無くそのときはXAMLを手打ちしていました。ひどすぎる)。

解決方法

で、ちょっと調べてみたら出てきました。

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2431637&SiteID=1
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2616165&SiteID=1

次のような操作をXP Professionalでしたらドラッグ&ドロップが出来るようになったそうです(確かめました。僕もVistaで同じ操作をしたら確かにドラッグ&ドロップできるようになりました。でもまあ念のためやるのならバックアップをお願いします):

1.%userprofile%の中の以下のフォルダを削除する
    Local Settings\Application Data\Microsoft\VSCommon
    Local Settings\Application Data\Microsoft\VCSExpress
    Application Data\Microsoft\VCSExpress

(最後のApplication Data\Microsoft\VCSExpressは僕は消し忘れていたのですが、それでも上手くいきました)

2."My Document"で次のフォルダを削除
    Visual Studio 2008\Settings
    Visual Studio 2005\Settings

(Visual Studio 2005のほうは削除しなくてもいい気がしますが、ついついこっちも削除してしまい、検証は出来ませんでした)

3.regedit.exeでレジストリキー、HKEY_CURRENT_USER\Software\Microsoft\VCSExpressを削除する。

(これは必須です。これを削除しなければ相変わらずドラッグ&ドロップは出来ませんでした。これを削除して初めて、再びドラッグ&ドロップできるようになりました。)

3を終えてからVisual C# 2008 Express Editionを起動すると、初回起動のときの例の「数分かかることがあります」が表示され、
fewseconds.jpg(←例のダイアログ)
再びWPFで上手くアイテムをドラッグ&ドロップできるようになります。

検証していないのでなんともいえませんが、おそらくこの手順には無駄がかなりあります。本当に必要なのは、3とわずかなフォルダの削除だけだと思います。もしかしたら3だけでも上手くいくかもしれません


追記

メインコンピュータでもういっかい試したところ(上で試したのはセカンドのラップトップパソコン)、どうやら削除するフォルダは「1.」の"Local Settings\Application Data\Microsoft\VCSExpress"だけでいいっぽいですね。そのあと「3.」のレジストリキーの削除でうまくいきました。(さいしょは「3.」だけを行ったのですがムリでした。~~VCSExpressを削除して、また「3.」をやって、はじめてうまくいきました)

拍手[0回]

PR