2010-01-20 8 views
0

나는이 누구의 Width 런타임에 크기를 조정할 수 있습니다 Panel : 프로그램이 종료 될 때런타임 중에 변경된 WPF 패널의 크기를 어떻게 얻을 수 있습니까?

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="770*"/> 
    </Grid.ColumnDefinitions> 
    <panels:NavigationPanel x:Name="cmBar" Margin="2,2,0,2" 
          HorizontalAlignment="Left" Width="220"/> 
    <panels:DetailAreaPanel x:Name="detailGrid" Margin="224,2,2,2" /> 
</Grid> 

, 나는 레지스트리에 새로운 Width을 저장할. 따라서 프로그램은 다음 번에 열 때 같은 크기로로드됩니다. 새로운 Width을 하드 코드하지 않는 한, Width을 제외하고는 모든 것이 작동합니다. 그래서 나는 나의 구원이 잘못되었다고 생각할 것이다.

all[5] = cmBar.ActualWidth.ToString();

all[]

는 레지스트리에 작성됩니다. 패널의 크기를 조정하는 방법에 관계없이 cmBar.ActualWidth는 항상 220입니다.

+0

안녕하세요, ActualWidth 대신 Width 속성을 사용해보세요. 또한, 어떤 종류의 설정 파일 대신에 레지스트리에 쓸 이유가 있습니까? – keyboardP

+0

Width 속성에도 같은 문제가 있습니다. 나는 레지스트리가 문제라고 생각하지 않는다. 내가 무엇을 할 수 없어도 나는 너비 나 ActualWidth를 바꿀 수있다. 그것보다 그게 내가해야 할 길을 말했을 뿐이야. 나는이 속성을 변경할 수있는 코드에 추가해야하지만 사용자가 패널을 클릭하고 크기를 작게 조정해야 할 필요가있다. – Krill

+0

NavigationPanel이 부모와 자체적으로 크기 조정 중이라고 가정하면 포함 된 컨트롤의 ActualWidth 속성을 읽을 수 있습니까? –

답변

0

Aviad P.이 바로 하나가이 문제의 원인이되는 .Width입니다. 해결책은로드 할 너비를로드 할 때입니다. .MaxWidth 이렇게하면 크기 조정은 수행되지만 .ActualWidth은 패널의 실제 너비를 가질 수 있습니다.

-1

Width="220"이라는 작은 부분은 너비를 220으로 설정하며 코드 숨김에서 명시 적으로 변경하지 않으면 변경되지 않습니다. 코드 숨김으로 패널의 너비를 변경하고 있습니까? 그렇지 않으면 너비가 실제로 변하지 않고 평생 220 명으로 유지됩니다.

+0

나는 그 선을 꺼 냈고 실행 중에 패널 크기를 조정할 때 (클릭하고 끌기) cmBar.Width 또는 cmBar.ActualWidth에서 너비를 변경하지 않습니다. – Krill

+0

너비가로드되고'cmBar.Width = split; '으로 설정되어로드 된 것을 확인 했으므로 문제를 설명하는 것처럼 보일 수도 있지만 위에 사용 된 코드를 대체 할 사람이 있습니까? 'Split'은 문자열 배열에서 파싱되며'cmBar'는 그와 같게 설정되어야합니다. 그러나'.width'를 사용하지 않습니다 – Krill

0

HorizontalAlignment = "늘이기"는 컨트롤의 부모 크기를 조정합니다. "왼쪽"은 그 자체로 크기가 조정되고 오른쪽에는 빈 공간이 남습니다.

+0

그 오른쪽에 다른 패널이있어서 그 빈 공간이 필요합니다. 다른 패널은 위의 코드에 포함되어 있습니다. 이전 대답은 문제가 맞았습니다. ITs .width 너비를 설정하거나 너비를 읽는 다른 방법이 필요하다. – Krill

+0

여러 요소를 배열하고 사용 가능한 공간을 기준으로 크기를 조정하려면 레이아웃을 포함하는 Panel에 의존해야합니다.이 경우 Grid는 추가 ColumnDefinitions와 함께 표시됩니다. 저장하려는 너비가 변경되는 원인에 대해 좀 더 자세히 설명해 주시겠습니까? 상위 컨테이너 (예 : Window, GridSplitter가있는 Grid)와 달리 응용 프로그램을 실행하는 동안 Panel의 내부 내용이 크기가 변할 것으로 예상합니까? –

관련 문제