2011-11-07 2 views
1

사용자 정의 양식 객체를 동적으로 렌더링하려는 scenerio가 있습니다. 이 양식은 WinForms 양식과 유사합니다. 버튼 모음 중 하나 이상을 표시하고 구현시 버튼 막대 내에 만 버튼을 살릴 수 있으며 사용자가 데이터 입력에 사용할 수많은 편집 컨트롤을 표시합니다.WPF 창이 DockPanel의 나머지 영역을 기준으로 자동으로 크기가 조정됩니다.

양식을 렌더링 할 때 구성 파일에 행 높이와 열 너비를 둘 다 응용 프로그램 영역의 백분율로 표시합니다. 모든 양식은 공통 행 높이 및 열 너비를 공유합니다. 이들의 실제 장치 단위 값은 응용 프로그램 초기화시 계산됩니다.

제 문제는 양식의 크기를 조정하는 것입니다. 예를 들어, 나는 15 행 80 열로 가정되는 양식을 가지고 있는데, 이것은 높이 500 단위와 폭 800 단위로 변환한다고 가정 해 봅시다. 이것은 버튼 막대를 포함하지 않는 양식 영역입니다. 지금은 FormPreviewManager에서 창 높이와 너비를 계산하고 있습니다. 그러나 제목 표시 줄을 포함 할 것인지 또는 부동 양식 창에 포함 할 것인지 선택할 수 있으므로 단추 막대 및 창 테두리의 크기를 포함하여 총 단위를 제공해야하므로 번거로울 수 있습니다.

폼 렌더링 중에 DockPanel을 사용하여 단추 모음을 렌더링하고 나머지 공간을 행과 열의 그리드로 요구합니다. 나는 FormGrid 객체의 나머지 공간을 설정 한 후 FormGrid의 너비와 높이를 특별히 설정했지만 포함하는 창의 크기는 변경하지 않고 버튼 막대를 creatign하려고했습니다.

부동 창 크기가 자동으로 조정되도록하려면 어떻게해야합니까? 버튼 바를 그릴 수 있고 남아있는 공간이 높이 500 단위 및 너비 800 단위라고 말하면 창은이 데이터를 유지하는 데 필요한 크기와 상관없이 조정할 수 있습니다.

이 문제에 대한 도움이나 가능한 다른 접근 방법은 좋을 것입니다.

이 내 창 내 전체 XAML 정의 있다면

은 기본적으로 내가 UnusedContent의 폭과 높이를 설정할 수 좋아하고 창 그에 따라 크기를 조정할 것 업데이트.

<Grid> 
    <DockPanel> 
     <StackPanel DockPanel.Dock="Top" Height="50" /> 
     <StackPanel DockPanel.Dock="Left" Width="50" /> 
     <ContentControl x:Name="UnusedContent" /> 
    </DockPanel> 
</Grid> 

나는 200 200 UnusedContent를 설정 한 경우는 250 250의 내부 치수, 컨텐츠 영역 플러스 두 스택 패널 창을 만들 것입니다.

답변

0

당신은 내가 우리가 있다고 생각하는 컨트롤의 ActualHeightActualWidth 특성에

<DockPanel> 
    <StackPanel DockPanel.Dock="Top" Height="50" /> 
    <StackPanel DockPanel.Dock="Left" Width="100" /> 
    <ContentControl x:Name="Spacer" /> 
</DockPanel> 

<Grid Height="{Binding ElementName=Spacer, Path=ActualHeight}" 
     Width="{Binding ElementName=Spacer, Path=ActualWidth}" /> 

+0

좋아 바인딩 다음 나머지 DockPanel 공간을 채우기 위해 컨트롤을 배치하고 시도 할 수 있습니다 맞습니다. 그러나 이것은 제가 필요로하는 것을주지 않는 것 같습니다. 나는 내 질문을 업데이트 할 것이다. – WPFNewbie

+0

질문 업데이트를 확인하십시오. – WPFNewbie

+0

@WPFNewbie ''태그에'SizeToContent = "WidthAndHeight"를 설정해보십시오. – Rachel

관련 문제