SilverLight?
リソースファイルに写真を追加すると、自動的に生成されたソースコードに、「System.Drawing.Bitmap」への参照がありますので、SilverLightでは利用できません。
回避策として、予め写真ファイルの拡張子を削除して、Visual Studio のリソース追加画面で、リソースのタイプを「その他」を選択して、写真ファイルを追加します。ファイルを追加したら、自動的に生成されたソースコードでは、「byte[]」タイプとなります、これで、MemoryStreamで利用可能となります。 ソースコード例、UIにImageコントロールを追加します。
MemoryStream ms =new MemoryStream (SilverlightBusinessApplication1.Assets.Resources.Images.); Image image = new Image(); BitmapImage bi = new BitmapImage(); bi.SetSource(ms); image.Source = bi;
※作成した写真はPNGフォーマットに保存する必要があります。
#すべての画像フォーマットを試していませんが、BMPにする場合、BitmapImageのSetSourceメソッドが呼び出された時、下記のようなわけわからない例外が発生します。
Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED)
この方法で設定したボタンの写真背景がはっきり見えません。
MemoryStream ms =new MemoryStream (SilverlightBusinessApplication1.Assets.Resources.Images.); BitmapImage bi = new BitmapImage(); bi.SetSource(ms); Button brt = new Button(); brt.Width = 43; brt.Height= 43; brt.Background = new ImageBrush() { ImageSource = bi };
MemoryStream ms =new MemoryStream (SilverlightBusinessApplication1.Assets.Resources.Images.); BitmapImage bi = new BitmapImage(); bi.SetSource(ms); Image image = new Image(); image.Source = bi; Button brt = new Button(); brt.Width = 43; brt.Height= 43; brt.Content = image;
XAMLで設定する場合
<button Height="Auto" ... />
ソースコードで設定する場合:
MyComponent.Width = double.NaN;
ScrollViewerコントロールに HorizontalContentAlignmentとVerticalContentAlignmentプロパティが提供していますが、ScrollViewerコントロールの中にCanvasコントロールを入れる場合、HorizontalContentAlignmentとVerticalContentAlignmentプロパティを設定しても、実際に反映しません
対策:
この時、代わりにCanvasコントロールのHorizontalAlignmentとVerticalAlignmentプロパティを設定してください。
SilverLightのコンテキストメニューなどのポップアップコントロールを表示させたい場合、やはりマウスがクリックしたところに表示させたいですね。この時、マウスのイベントのMouseButtonEventArgsパラメータを利用します。GetPositionのパラメータをnullにしたらよい。
ソースコード例:
e.GetPosition(null);
Key.Back と Key.Delete の入力が認識しません、バグっぽい、下記の記事があります
http://forums.silverlight.net/forums/p/12875/43544.aspx

 
で改行できます。Visual Studio のプロパティで入力すると、変化がありません、直接にXAMLに入力する必要があります。
コメント:
0