2011-02-09 26 views
0

2質問を切り替えるスタイル:まずWPF透明性と透明と不透明


  1. それはWPFウィンドウ上の透明度を切り替えることは可能ですか?任意のポインタが大いに感謝!
  2. 2番目:
    親ウィンドウからTransparancyを継承するコントロールはほとんどありますが、独自のスタイルのDatagridコントロールがあります。スタイルは外部参照ファイル(Style = "{DynamicResource MyDGStyle}")にあります。 )..... xamlコードの背後にスタイルを切り替えることはできますか? (理想的には、私はスタイルトリガーを使ってこれを実現しますが、私はできるとは思わない)。

どうもありがとうございました

ジョー

編集(返信に見えることはできません)私と同じくらい長い

おかげトグル透明性については、アレックス、NVM

、実行時にウィンドウの 'Background'プロパティを実行時に色から 'Transparent'に設定することができます。ちょうどあなたのコードアレックスを拡張し、スタイルを切り替えについて

は、おそらく私が

void OnButtonPress() 
{ 
    var transparentStyle = Themes.CurrentTheme.MyDGNonTransparentStyle; 
    var nonTransparentStyle = Themes.CurrentTheme.MyDGNonTransparentStyle; 

    if (isTransparent) // Change to Non-Transparent 
     this.MyGrid.Style = (Style)this.FindResource(nonTransparentStyle); 
    else // Change to Transparent 
     this.MyGrid.Style = (Style)this.FindResource(nonTransparentStyle); 
} 

ような何かを行うことができますか?

おかげ

ジョー

第三編集

みんなありがとう、

あなたを混同して申し訳ありません - 私の2番目の質問だった私のデータグリッドは、独自のスタイルを持っている(としないため、ウィンドウから継承)現在の状態(透明/非透明)に応じてスタイルを設定する必要があるため、実行時にDataGridスタイルを変更する必要があります。ウィンドウ、それはデータグリッドで行うことができますか?

おかげ

ジョー

答えて

2

は、WPFウィンドウの上に透明度をトグルすることが可能ですか?

はい、それは次のとおりです。

<Window WindowStyle="None" 
     AllowsTransparency="True" 
     Background="#88aa3366"> 
</Window/> 

悪いニュースは、あなたが自分で窓ヘッダのロジックを実装しなければならないということです。 This articleが参考になる場合があります。

xamlコードの後ろにスタイルを切り替えることはできますか?

質問は少し不明である、多分これは役立ちます:

var key = Themes.CurrentTheme.MyDGStyle; 
this.MyGrid.Style = (Style)this.FindResource(key); 
+2

私はあなたが実行時にAllowsTransparencyを変更することができるとは思いません。 – NVM

+0

はい、しかし背景のプロパティを変更することでアルファチャンネルを変えることができます:this.Background = new SolidColorBrush(Color.FromArgb(255,255,255,255))//透明でない白い背景 –

+0

実際にJoe.Netは2つの質問をしました。最初のものは透明な窓です。答えは:AllowTransparencyを設定すると、Window.Backgroundプロパティに異なるアルファチャンネルを設定することで、ウィンドウの透明度を変更することができます。 2番目の質問は私も理解できませんでした。 –