リソースファイルに写真ファイルの利用 † リソースファイルに写真を追加すると、自動的に生成されたソースコードに、「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フォーマットに保存する必要があります。 Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED) Buttonの背景を写真に設定する †この方法で設定したボタンの写真背景がはっきり見えません。 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 }; ボタンをImageButtonのようにみえる †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; コントロールのAutoサイズ †XAMLで設定する場合 <button Height="Auto" ... /> ソースコードで設定する場合: MyComponent.Width = double.NaN; ScrollViewer内のコントロールの位置を設定する † ScrollViewerコントロールに HorizontalContentAlignmentとVerticalContentAlignmentプロパティが提供していますが、ScrollViewerコントロールの中にCanvasコントロールを入れる場合、HorizontalContentAlignmentとVerticalContentAlignmentプロパティを設定しても、実際に反映しません
対策: マウスの座標を取得する † SilverLightのコンテキストメニューなどのポップアップコントロールを表示させたい場合、やはりマウスがクリックしたところに表示させたいですね。この時、マウスのイベントのMouseButtonEventArgsパラメータを利用します。GetPositionのパラメータをnullにしたらよい。 ソースコード例: e.GetPosition(null); TextBoxのKeyDownイベント †Key.Back と Key.Delete の入力が認識しません、バグっぽい、下記の記事があります http://forums.silverlight.net/forums/p/12875/43544.aspx XAMLでButtonなどの文字列に改行を書く †
 
 で改行できます。Visual Studio のプロパティで入力すると、変化がありません、直接にXAMLに入力する必要があります。 その他 †
セシウム137を97.7%吸着 コメント: |