- - PR -
Windows Mobile 向け開発での ラベルの背景透過について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-11-23 12:33
現在、スマートフォン向けの開発を行っております。
画像(PictureBox) の上に、ラベルを設置して、 ラベルの背景を透過したいのですが、 ラベルの親を画像に設定しても「値が有効な範囲にありません」という エラーで上手くいきません。 同じコードをWindowsフォームで開発すると、 透過ができます。 Windows Mobile ( compact FrameWork.2.0 )では やり方が異なるのでしょうか。 ご存知の方がいらっしゃいましたら、ご教授ください。 開発環境 Visual Studio 2008 Pro C# Compact FrameWork .Net 2.0 Windows Mobile 6.0 Professional向け開発 コード private void Form1_Load(object sender, EventArgs e){ Label label = new Label(); label.Size = new Size(500, 30); label.Location = new Point(5, 5); label.Text = "TESTです"; label.BackColor = Color.Transparent; Bitmap image = LoadImage("SmartDeviceProject1.test.bmp"); Image img = image; PictureBox pic = new PictureBox(); pic.Image = img; pic.Size = new Size(500, 100); pic.Location = new Point(5, 5); pic.BackColor = Color.Transparent; panel1.Controls.Add(label); panel1.Controls.Add(pic); label.Parent = pic; } ※GUI上でパネルを追加しており、 ラベルと画像のコントロールはコードで追加しています。 お手数をおかけ致しますが、よろしくお願いいたします。 |
|
投稿日時: 2008-11-23 13:56
全然Windows Mobile ( compact FrameWork.2.0 )はやったことは
ありませんので、当てずっぽうですが。 Windowsフォームだとうまくいって、Compactだと×、 かつ 値が有効な範囲にありません が真のエラー原因だとすると、 ありえそうな話としては、 size=(500, 30)とか Size(500, 100); が(特に500)画面サイズより大きすぎることに起因してエラーだとか? 現在、透過できない以前に、恐らく表示できずに 引っかかっているようなので、エラーメッセージをまともに解釈すると、 この部分のような気がします。 GUIから追加されたPanelのSizeは幾つでしょう? |
|
投稿日時: 2008-11-23 17:52
platiniさん
早速のご回答ありがとうございます。 大変重要な事を記入しておりませんでした。 エラーがあるのは以下の部分です。 label.Parent = pic; この1文をコメントアウトして、 縦位置をずらした場合は表示がそれぞれされました。 親をpictureboxにしようとすると エラーが発生してしまいます。 現在、開発環境のそばから離れてしまっておりますが、 確か、panelのサイズは Width:548 height:600 ぐらいはあったような気がします。 でも、platiniさんの指摘内容の可能性を考え確認してみます。 親を変えようとして、出ているエラーですので、 サイズオーバーの可能性は十分あると思いますので。。。 |
|
投稿日時: 2008-11-24 13:29
こんにちは。
そもそも.NET Compact Frameworkで、背景色透過がサポートされているのか、 を疑ってみるべきではないですか? アプリケーションインターフェイス(.NET ClassLibrary、Windows API)的には 通常のWindowsでも、WindowsCEでも、ほぼ同じようなものが提供されていますが、 OSにしろ、ClassLibraryにしろ、中身は全くの別物なのですから、 いくらでも違いはありますよ。 画像上に文字を表示したいだけなら、カスタムコントロールで簡単につくれるでしょう。 コントロールの描画時に、画像と文字を描画すればよいのですから。 (細かい要件にもよりますが、私なら半日もあれば…) コントロールの透過なんてWindowsの仕組みを考えるとかなり難しいでしょうに。 あと… サイズがはみ出したからエラーになるなんて、私には聞いたことも経験したこともありません。 |
|
投稿日時: 2008-11-24 15:24
(利用規約違反のため削除いたしました。@ITクラブメンバーシップセンター)
|
|
投稿日時: 2008-11-24 15:31
(利用規約違反のため削除いたしました。@ITクラブメンバーシップセンター)
|
|
投稿日時: 2008-11-25 05:23
モデレータの遠藤@DAさん。
「未記入」さんの投稿スパムじゃないの。 |
|
投稿日時: 2008-11-25 23:46
みなさん回答ありがとうございます。
色々試してみましたが、 そもそも、PictureBoxにコントロールをAddすることが できませんでした。(Windowsでは可能) 結局、DrawStringにて処理を行うことで 解決することができました。 本当にありがとうございました。 今後とも、よろしくお願い致します。 |
1