2014-01-22 2 views
1

enter image description here이미지를 창 크기에 비례하여 표시하려면 어떻게해야합니까?

저는 WPF에서 표시 할 333x344 픽셀 이미지를 가지고 있으며 항상 창의 크기에 관계없이 같은 크기를 표시합니다. 이미지가 dockpanel 안에 있지만 dockpanel을 grid로 변경해도 도움이되지 않습니다.

어떻게하면 창 크기에 비례하여 얻을 수 있습니까?

<Window> 
<ScrollViewer> 
<ItemSontrol> 
<Usercontrol> 
<Grid> 
<DockPanel> 
<Image/> 
</DockPanel> 
</Grid> 
</Usercontrol> 
</ItemSontrol> 
</ScrollViewer> 
</Window> 

또는

<ItemSontrol> 
<Usercontrol> 
<Grid> 
<Grid> 
<Image/> 
</Grid> 
</Grid> 
</Usercontrol> 
</ItemSontrol> 

편집 : 아래는 사이즈가 해결되지 않았다. 이미지를 둘러싼 DockPanel/Grid는 다른 레이아웃 패널로 바꿀 수 있습니다. 기타는 변경할 수 없습니다.

img.Stretch = Stretch.None 
+0

창 XAML 코드를 게시 할 수 있습니까? – David

+0

스크롤보기 제거 – thumbmunkeys

+0

@thumbmunkeys 그럴 수 없습니다. 창에 너무 커서 스크롤 뷰어가 필요한 다른 그리드가 있습니다. – user2330678

답변

0

xaml 코드의 이미지에서 width, height, VerticalAlignment 및 HorizontalAlignment 속성을 제거합니다.

+0

거기 있지 않습니다. – user2330678

1

다음 사이트 ViewBox의 이미지와 그 부모의 (a Grid 같은) 각각의 창

0

ItemsControl의 기본 ItemsPanel이 항목에 의해 사용되는 공간을 제한하는 StackPanel이며, 그것의 크기를 제한합니다 확인 "스택"의 방향 (기본적으로 수직). StretchFill으로 설정하면 가로 공간을 채우기 위해 늘어나는 것을 볼 수 있습니다.

<ItemsControl> 
    <ItemsControl.ItemsPanelTemplate> 
     <ItemsPanelTemplate> 
      <Grid /> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanelTemplate> 

    <UserControl> 
     ... 
    </UserControl> 
</ItemsControl> 

을하지만,이 경우에는 단일 항목과 전체 영역을 작성하기 때문에 의미가 전혀 ItemsControl을 사용하지 것이다 : 해결책은 그리드에 패널 템플릿을 변경하는 것입니다. UserControl이 항목 컬렉션의 첫 번째 항목이되고 추가 항목이 모눈에 쌓이게됩니다 (항목에 Grid.RowGrid.Column을 정의하지 않는 한). 목록 항목의 배경이나 컨테이너를 만들려고합니까? 이 경우 ItemsControlControlTemplate을 대신 정의해야합니다.

관련 문제