2010-03-30 3 views
6

나는 Google을 사용해 봤지만 빙은 아무 소용이 없다고 시도했습니다. WPF에서 목록 상자에 부분 항목이 나타나지 않도록하는 방법에 대한 아이디어가있는 사람이 있습니까? 목록 상자의 높이가 200 픽셀이고 각 항목의 높이가 35 픽셀입니다. 즉, 5.7 개의 항목을 표시 할 수 있습니다. 항목의 7/10은 바람직하지 않습니다. 나는 그것을 단지 5 가지 항목으로 제한하려고합니다. 그런 다음 사용자가 스크롤하여 추가 항목을 볼 수 있습니다.WPF 목록 상자에 부분 항목을 표시하지 않음

동적으로 목록 상자 또는 ScrollViewer ViewPort 크기를 조정하여 완벽하게 맞 춥니 다? 또는 B) 원하는 높이가 남은 세로 공간보다 큰 아이를 정렬하지 않는 맞춤 패널을 구현 하시겠습니까?

모든 의견을 크게 기뻐할 것입니다. 마지막 참고 사항 : 누구든지 타사 컨트롤 (목록 상자 또는 그리드)을 알고있는 경우이 점에도 관심이 있습니다.

+0

hmmm, 음, WinForms에서 ListBox의 설정은 다음과 같습니다. IntegralHeight AFAIK, WPF ListBox. –

답변

1

부분 행이 없을 때까지 디자이너에서 크기를 조정하면됩니다. 커스텀 패널을 구현하는 것은 이런 식으로 너무 많은 일을합니다.

ListBox 대신 ListView을 사용해 볼 수도 있습니다. 나는 이것을 오도 할 수도 있지만, ListView은 partials를 보여주지 않거나 부분 행을 표시하지 않을 수있는 옵션이 있다고 생각합니다.

+0

나는 listview를 볼 것이다. 우리는 목록 상자의 크기를 미리 지정할 수 없습니다. 사용자가 창 크기를 조정하면 높이가 커집니다. –

+2

데이비드 (David)가 제대로 크기를 조정할 수 있도록 잘하셨습니다! 그렇게하지 않는 것은 내 큰 애완 동물이 아닙니다. –

+0

사실 내 대답은 "괴롭히지 마라"였습니다. 당신이 설명하는 것은 정상적인 목록 상자 동작입니다. 그 때문에 고객을 잃을 지 여부는 의심 스럽습니다. – MusiGenesis

1

내 프로젝트가이 문제를 해결 한 이래로 나는 오늘이 문제를 생각해 보았습니다. 내 생각은 내 프로젝트와 관련이 있지만 적용 가능해야합니다. 나는 MVVM ViewModel을 사용한다고 가정하고 있지만 MVVM ViewModel 없이는 작동 할 것입니다.

ListBox가있는 컨테이너의 높이에 속성을 바인딩 한 다음 ListBox의 높이를 ValueConverter를 사용하여 바인딩하여 단일 항목의 높이를 기준으로 ListBox를 단계적으로 확장하거나 축소시킵니다. 크기를 조정할 때 약간 재미있어 보일 수도 있지만 짧은 애니메이션으로 잘 보일 수 있습니다.

+0

이 답변에 좀 더 자세히 설명해 주시겠습니까? –

+0

이번 주말에 간단한 샘플을 던지려고합니다. –

1

목록 상자의 내용의 실제 높이를 찾고 디스 어셈블리에서 높이를 조정할 수 있지만 구현에 따라 목록 상자 크기가 커지거나 작아 지도록 만듭니다.

1

내 표결은 각 항목에 대한 맞춤 패널입니다. 이 패널은 자신을 완전히 표시 할 수없는 경우 표시되지 않습니다. 목록은 패널의 영역을 제공하는 크기를 조정할 수있는 컨테이너이기 때문에 필요에 따라 크기를 조정할 수 있습니다. 패널은 필요에 따라 확장 및 축소 할 수 있습니다.

관련 문제