2017-11-28 51 views
0

GridRow [0]とその親(Stackpanel)の値を取得しようとしていますが、StackPanel値のGridRow [0]の値を差し引いています。 最後のステップは、結果をGridRow [1]に割り当てることです。この場合DoubleをGridLengthにキャストする方法は? C#

gridLengthVariable = othergridLengthVariable - doubleVariable; 

私は

gridLengthVariable.Value 

をGridLengthするダブルからの明示的な変換を行うことができない私はここに割り当てることができませんので読める唯一のプロパティです。

gridLengthにdoubleをキャストする方法が必要ですが、これは私に同じソリューションをもたらす場合、私のコードに深い変更を加えることに気をつけています。

XAMLの変更はできません。

EDIT:

私は私が何をしようとしているが表示されます:

それはgridRow作成したXAMLのダイナミックな変化です。 " -"

おかげ

 gridProfile.RowDefinitions[1].Height = 
    stackPanelProfile.Height - gridProfile.RowDefinitions[0].Height; 

は、ここで私は、演算子を適用することはできません。

+0

を:https://msdn.microsoft.com /de-de/library/system.windows.gridlength(v=vs.110).aspx – derM

+0

GridlengthはAuto、Pixel、Starのいずれかです。どのタイプをチェックせずに値を使用するだけでも、最もスマートな計画ではないかもしれません。 –

+0

あなたの最終目標は何ですか?この手動で計算されたグリッド長で何をしようとしていますか?代わりにカスタムパネルを作成したいと思うかもしれません。 –

答えて

3

GridLengthは構造体です。それは単なる二重値以上のものです。例えばAutoでもかまいません。

あなたは新しいGridLengthを作成し、コンストラクタで実際の値を提供することができます:私はC#のを知らないが、私は、コンストラクタを使用して動作する必要がありますね

gridLengthVariable = new GridLength(othergridLengthVariable - doubleVariable); 
+0

あなたのコードをテストしたときに私は何か間違ったことをしていたかもしれませんが、最後に私と同じ問題があります...問題はまだ同じです。 GridLengthを2倍に変換することはできませんが、私は代替ソリューションを探しています。ご回答有難うございます。 –

+0

このようなものではありませんか? 'gridProfile.RowDefinitions [1] .Height =新しいGridLength(stackPanelProfile.Height.Value - gridProfile.RowDefinitions [0] .Height.Value);'。あなたが正確なタイプを知らないときにそれを得るのは難しいです。 (そして私はあなたの編集btwを見ませんでした) –

+0

今、予期せぬNaNが発生しています gridProfile.RowDefinitions [0] .Height.Value、私は再びコードをチェックして、次にそれを深く変更します。ご協力いただきありがとうございます。 –

関連する問題