リソースファイルに写真ファイルの利用

 リソースファイルに写真を追加すると、自動的に生成されたソースコードに、「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)

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プロパティを設定しても、実際に反映しません    対策:
 この時、代わりにCanvasコントロールのHorizontalAlignmentとVerticalAlignmentプロパティを設定してください。

マウスの座標を取得する

 SilverLightのコンテキストメニューなどのポップアップコントロールを表示させたい場合、やはりマウスがクリックしたところに表示させたいですね。この時、マウスのイベントのMouseButtonEventArgsパラメータを利用します。GetPositionのパラメータをnullにしたらよい。

ソースコード例:

e.GetPosition(null);

TextBoxのKeyDownイベント

Key.Back と Key.Delete の入力が認識しません、バグっぽい、下記の記事があります

http://forums.silverlight.net/forums/p/12875/43544.aspx

XAMLでButtonなどの文字列に改行を書く

&#x0a;
&#x0d;

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

その他

  1. XamlReader.LoadメソッドにXAMLにイベントの定義ができません。
  2. TextBoxコントロール内の一部の文字列のみに対して、色を設定できません。
  3. Floder Browserがサポートしません


セシウム137を97.7%吸着

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:47:28 (1628d)

G|Cg|C@Amazon Yahoo yV

z[y[W yVoC[UNLIMITȂ1~] COiq COsیI