2017-11-28 22 views
0

GridRow [0]과 그 부모 (Stackpanel)의 값을 얻으려고하면 StackPanel 값의 GridRow [0] 값을 뺀다. 마지막 단계는 그 결과를 GridRow [1]에 할당하는 것입니다. Double에서 GridLength로 변환하는 방법은 무엇입니까? C#

gridLengthVariable = othergridLengthVariable - doubleVariable; 

이 경우 내가

gridLengthVariable.Value 

를 GridLength 두 번에서 명시 적 변환을 할 수없는 것은 그래서 여기에 할당 할 수 없습니다 읽을 수있는 전용 속성입니다.

gridLength에 double을 캐스트하려면 한 가지 방법이 필요합니다. 동일한 솔루션을 가져 오려면 코드에서 더 깊은 변경을해야합니다.

XAML 변경이 불가능합니다.

편집 :

내가 할 노력하고있어 표시됩니다 :

그것은 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

격자 길이는 자동, 픽셀 또는 별일 수 있습니다. 어떤 유형인지 확인하지 않고 단순히 값을 사용하는 것이 현명한 계획이 아닐 수도 있습니다. –

+0

최종 목표는 무엇입니까? 이 수동으로 계산 된 격자 길이로 무엇을하려고합니까? 대신 사용자 정의 패널을 만들 수도 있습니다. –

답변

3

GridLength은 구조체입니다. 그것은 하나의 double 값 이상입니다. 예를 들어 Auto 일 수도 있습니다.

당신은 새로운 GridLength을하고 생성자를 통해 실제 값을 제공 할 수 있습니다 : 나는 C 번호를 모르는

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

어쩌면 내가 코드를 테스트했을 때 뭔가 잘못하고 있었지만, 결국에는 내가 가지고있는 것과 같은 문제가 생겼다. 문제는 여전히 동일하다. 가능하지 않다는 것을 알고 있습니다. GridLength를 게시하는 방식으로 두 배로 변환하지만 대체 솔루션을 찾고 있습니다. 귀하의 답변에 감사드립니다. –

+0

이런 식으로해서는 안됩니까? gridProfile.RowDefinitions [1] .Height = 새로운 GridLength (stackPanelProfile.Height.Value - gridProfile.RowDefinitions [0] .Height.Value);'. 정확한 유형을 모르는 경우 올바르게 가져 오기는 어렵습니다. (그리고 내가 당신의 편집 btw를 보지 못했습니다) –

+0

예기치 않은 NaN이 나타납니다. gridProfile.RowDefinitions [0] .Height.Value, 다시 코드를 확인한 다음, 코드를 변경합니다. 당신의 도움을 주셔서 감사합니다. –