none
Forums 사이트와 같은 방식의 메뉴를 만들어보려 합니다. RRS feed

  • 질문


  • WPF와 C#을 공부중인 초보입니다..^^;
    이곳의 포럼 사이트의 상단 메뉴처럼
    Technologies, Download, Program ... 등등의 메뉴를 클릭했을 때
    아래로 나오는 메뉴를  구성해보려 합니다.
    Style과 Template을 이용해서 상단의 Technologies, Download, Program 까지는 구현했는데,
    클릭했을 때 아래로 표시되는 메뉴는 어떻게 만들어야 하나요?

    더불어서 devexpress.com 사이트 처럼 Free Trials & Demos 를 눌렀을때 msdn forum 페이지와는 다르게
    아래로 펼쳐지는 일반적인 Menu 구성이 아닌 이런 구성은 어떻게 구현해야 할까요...?

    간단한 예제라도 있으면 감사하겠습니다.

    WPF 초보라.. 뭔가 될듯 될듯 하면서도 자꾸 막힙니다..
    감사합니다.
    (이미지를 추가하려 했더니 계정을 확인하기 전에는 본문에 이미지 또는 링크를 포함할 수 없습니다. 라고 하네요...)

    2016년 1월 27일 수요일 오전 1:40

답변

  • 안녕하세요.

    가장 간단하게 생각해볼수 있는 방법이

    메뉴 2단구성입니다.

    간단하게 생각해보시죠.

    [ 메인메뉴1 ] [ 메인메뉴2 ] [ 메인메뉴3 ] [ 메인메뉴4 ] 

    [ 서브메뉴1 ] [ 서브메뉴2 ] [ 서브메뉴3 ] [ 서브메뉴4 ]

    이런식으로 만들어둡니다.

    서브메뉴는 필요에따라 길게 만들어도 되겠죠.

    서브메뉴의 Visibility 초기값은 False 로 잡습니다.

    그리고 메인메뉴가 클릭되면, RaiseProperty (속성변경통지)를 통해서 해당 서브메뉴의 Visibility 를 True 로 바꿔주세요.

    기본적으로는 이 움직임을 해보시면 이해가 되실껍니다.

    그리고 부가적으로 효과가 필요하시면 Xaml, View쪽에서 Trigger를 사용해서 제어를 하시면 됩니다.

    다만, WPF 를 하심에 있어서

    View 에서의 역활과 ViewModel 에서의 역활을 분명히 나누셔야지, 안그러면 나중에 후회합니다.

    동기/비동기처리 라든지, View.cs 에서는 어디까지 소스제어를 허용할것인가.. 라든지

     ※저는 View.cs 에서는 자동생성되는 이벤트사용없이 ViewModel에서 DelegateCommand 를 이용합니다.


    프로그램 개발에는 정답이 없다.

    2016년 1월 28일 목요일 오전 2:59