2009-11-20 6 views
0

wpf dockpanel을 고정 할 수있는 방법이 있습니까? 나는 그물에 수색하고 나는 이것을 허용 할 어떤 기능도 찾아 내지 않았다. 내가 원했던 것은 독 패널의 도크 영역의 크기를 고정시키는 것입니다. 예를 들어, 오른쪽 영역의 너비가 항상 잠긴 상태로 유지되기를 바랍니다. 내가 본 적이있는 유일한 해결책은 타사 컨트롤입니다.이 영역의 너비를 제한하는 방법을 알고있는 사람이 있습니까? 고맙습니다.wpf dockpanel 영역의 크기 제한

답변

0

당신은 당신이 도킹 된 컨트롤의 최대 너비 속성을 설정할 수 있습니다

+0

도크 패널에 설정된 컨트롤에서 maxwidth 및 minwidth를 설정하려고 시도했지만 작동하지 않는 것 같습니다. 어쩌면 내 문제를 좀 더 설명해야 할 것입니다. 격자 레이아웃의 행렬에 도킹 패널을 중첩합니다. 행이 작습니다. 이 dockpanel 안에는 왼쪽 도크에서 자라는 수평 itemscontrol과 오른쪽 도킹에서 일부 버튼이 있습니다. 단추를 동일한 크기로 유지하고 항목 컨트롤로 밀어 넣거나 겹치지 않게하려고합니다. 항목 제어 크기가 해당 버튼에 도달하면 이런 현상이 발생합니다. 올바른 도킹 패널이 축소되지 않도록하는 방법이 있습니까? –

+0

dockpanel의 LastChildFill 속성을 true로 설정하십시오. 버튼을 오른쪽으로 도킹하고 itemscontrol의 도킹 속성을 설정하지 마십시오. – DancesWithBamboo

+0

제안대로 시도했지만 여전히 작동하지 않았습니다. 여전히 오른쪽에있는 버튼을 밀었습니다. 다른 아이디어? –

0

당신의 추가 설명에 따르면, 다음과 같은 레이아웃이 있습니다.

<DockPanel> 
    <ItemsControl DockPanel.Dock="Left"/> 
    <StackPanel DockPanel.Dock="Right"/> 
</DockPanel> 

내가 추천 가장 먼저하는 일이에 LastChildFill="False"를 추가하는 것입니다 DockPanel 왼쪽 및 오른쪽 부분이 서로 관련되지 않게 자라게하십시오.

그런 다음 ItemsControl 항목의 수가 증가하면 어떻게되는지 결정해야합니다. 가로 스크롤 막대를 나타나게하거나 줄 바꿈 등을 할 수 있습니다.

0

예, LastChildFill = "False"가 이미 설정되어 있고 내 항목 컨트롤이 가로 템플릿이 적용된 스크롤 뷰어에 이미 있습니다. 이 설정으로 초기 레이아웃이 연속적으로 잘 보입니다. 유일한 문제는 itemscontrol이 너무 커지고 오른쪽 도킹에 부딪 힐 때 포함 된 격자에 최소 너비가 설정되어 있어도 오른쪽 도크가 항상 작아 지도록합니다. 다음은 내 코드 예제입니다.

<DockPanel Grid.Row="1" LastChildFill="False"> 

       <!--Horizontal template applied--> 
       <ScrollViewer DockPanel.Dock="Left"> 
        <ItemsControl/>  
       </ScrollViewer> 

       <Grid DockPanel.Dock="Right" MinWidth="200"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="Auto"/> 
         <ColumnDefinition Width="Auto"/>        
        </Grid.ColumnDefinitions> 
        <Button Grid.Column="0"/> 
        <Button Grid.Column="1"/>         
       </Grid> 
    </DockPanel> 

감사합니다. . . 다른 아이디어?