C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: AllowsTransparency="True"をC#で


(過去ログ 77 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■45280 / inTopicNo.1)  AllowsTransparency="True"をC#で
  
□投稿者/ バッファ (1回)-(2010/01/08(Fri) 01:55:24)

分類:[.NET 全般] 

こんにちわ。
WPFとC#について教えてください。
AllowsTransparency="True"
をC#で書くところで詰まっています。
これはWindowの属性なので、
Window.AllowsTransparencyProperty = false;としてみたのですが、「静的読み取り専用フィールドへの割り当てはできません」「boolをSystem.Windows.DependencyPropertyに暗黙的に変換できません」などのエラーとなっています。
どのようにしたらよいでしょう?

引用返信 編集キー/
■45282 / inTopicNo.2)  Re[1]: AllowsTransparency="True"をC#で
□投稿者/ Hongliang (537回)-(2010/01/08(Fri) 03:29:28)
> これはWindowの属性なので、
XML 的にはそうですが、XAML 的には Window インスタンスのプロパティと言う方がいいでしょう。
なので、例えば new した Window に対して設定するなら
Window wind = new Window();
wind.AllowsTransparency = true;
になります。

// こんなのが必要になるパターンが今ひとつ思いつきませんが。
引用返信 編集キー/
■45289 / inTopicNo.3)  Re[2]: AllowsTransparency="True"をC#で
□投稿者/ バッファ (2回)-(2010/01/08(Fri) 17:55:10)
Hongliangさん、ありがとうございました。
掲示板を使えなくて返事が遅くなりました。
早速試してみましたが、微妙にうまくいきませんでした。

namespace WPF1 {
public partial class Window1 : Window {
public Window1() {
InitializeComponent();

Window Window1 = new Window();
Window1.AllowsTransparency = true;
}

private void button_Click(object sender, EventArgs e){
Window Window1 = new Window();
Window1.AllowsTransparency = false;
}

}
}
というような感じで、通常は透明にしておき、ボタンを押したときだけウィンドウを表示したいと考えています。
で、このように実装してみて、コンパイルはでき、起動もできたのですが、ウィンドウ枠があり、透明になっていないのです。
ご教示お願いします。

引用返信 編集キー/
■45291 / inTopicNo.4)  Re[3]: AllowsTransparency="True"をC#で
□投稿者/ Hongliang (538回)-(2010/01/08(Fri) 18:17:45)
「new した Window に対して設定するなら」って書きましたよね?
new するってことは文字通り新しく作るってことです。新しいウィンドウを作ってそれの AllowsTransparency を変更したところで、既存のウィンドウには当然何の影響もありません。
自分自身の AllowsTransparency を変更するのなら this.AllowsTransparency になるでしょう。

でも WPF ならバインディングしちゃうのが一般的でしょう。
引用返信 編集キー/
■45293 / inTopicNo.5)  Re[4]: AllowsTransparency="True"をC#で
□投稿者/ バッファ (3回)-(2010/01/08(Fri) 19:51:45)
Hongliangさん、たいへんありがとうございました。

namespace WPF1 {
public partial class Window1 : Window {
public Window1() {
InitializeComponent();

this.AllowsTransparency = true;
}

private void button_Click(object sender, EventArgs e){
this.AllowsTransparency = false;
}

}
}
で動作しました。
もっとも、じっさいは「Windowが表示されたあとでAllowsTransparencyを変更することはできません」とエラーでした。
なるほど、それはもっともなので、今回はできないということですが、納得したので解決済みとさせていただきます。
ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -