Properties.ResourcesがXAMLから参照できない
Properties/Resources.resxには、文字列リソースとしてApplicationTitleを追加しておいて、XAMLには以下のように記述した。
<Window xmlns:prop="clr-namespace:MyNamespace.Properties" Title="{x:Static prop:Resources.ApplicationTitle}" .../>
しかし「MyNamespace.Properties.Resources.ApplicationTitleという静的メンバは含まれていません」というエラーになる。コードからだとMyNamespace.Properties.Resources.ApplicationTitleを参照できるんだけど…。
デザイナ上の問題かと思い、一時的に Resources.Designer.csの中の ApplicationTitleプロパティにエディタが参照可能な属性を付けてみたが変化せずやっぱり存在しないというエラー。実行してもやっぱりエラー。
[EditorBrowsableAttribute(EditorBrowsableState.Always)] internal static string ApplicationTitle { get { return ResourceManager.GetString("ApplicationTitle", resourceCulture); } }
たぶん、Properties.Resourcesが、ResourceDictionaryじゃないからだとは思うけど、どうすれば良いのだろうか。
追記
こちらを参考にして、実行時解決はクリアしたんだけど、デザイン時にエラーになるから画面デザインできないっ!大体フォーラムに出てくるだけで公式にはトピックがないのはどういうことなのかな。WPFにして世界を変えすぎちゃってる感じ。素直にWPFの流儀に従ってResourceDictionary作るべきかな。したらなにゆえにProperties.Resources.resxがあるのかっちゅー話になるんだけどね。アプリーケーションアイコンはそっちじゃないと変えられないからとか何か中途半端。
さらに追記
で、公式にある情報だけど、download sampleがサインインしてもリンクできない。てかMicrosoftのページはリニューアルばっかりしてすぐリンク切れになるから情報量が少ない感じ。だいたい「この例では…」とある、そのリンク元が、この例を何も書いていないのが問題。他の「方法:〜」では、ちゃんと例が示されているのに酷すぎる。
…で諦めかけていたんだけど、藁をもすがる思いで、URLの[ja-jp]を、[en-us]に変えたところ、やりましたぜボス、http://msdn.microsoft.com/en-us/library/bb625941.aspx からダウンロードできました。
さいごの追記
原因判明。Resourcesの設定エディタでアクセス修飾子を、internalでなくpublicにすれば良いだけのことだった。IDEの設定エディタでも上のほうに選択するコンボボックスがあるじゃない。EditorBrowsableAttributeも不要。
public static string ApplicationTitle