프로젝트

일반

사용자정보

통계
| 브랜치(Branch): | 개정판:

markus / TEST_WPF / MessageContentPresenter.cs @ 08a73330

이력 | 보기 | 이력해설 | 다운로드 (2.09 KB)

1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using System.Windows;
6
using System.Windows.Controls;
7
using TEST_WPF.TalkPane;
8

    
9
namespace TEST_WPF
10
{
11
    public class MessageContentPresenter : ContentControl
12
    {
13
        /// <summary>
14
        /// The DataTemplate to use when Message.Side == Side.Me
15
        /// </summary>
16
        public DataTemplate MeTemplate { get; set; }
17

    
18
        /// <summary>
19
        /// The DataTemplate to use when Message.Side == Side.You
20
        /// </summary>
21
        public DataTemplate YouTemplate { get; set; }
22

    
23
        protected override void OnContentChanged(object oldContent, object newContent)
24
        {
25
            base.OnContentChanged(oldContent, newContent);
26

    
27
            // apply the required template
28
            KCOMDataModel.DataModel.TALK message = newContent as KCOMDataModel.DataModel.TALK;
29
            if (message == null)
30
            {
31
                message = oldContent as KCOMDataModel.DataModel.TALK;
32
            }
33
            else
34
            {
35
                if ((MessageType)message.MSGTYPE == MessageType.Normal)
36
                {
37
                    if ((MessageSide)message.MSGSIDE == MessageSide.Me)
38
                    {
39
                        ContentTemplate = App.Current.Resources["MeTemplate"] as DataTemplate;
40
                        //ContentTemplate = MeTemplate;
41
                    }
42
                    else
43
                    {
44
                        ContentTemplate = App.Current.Resources["YouTemplate"] as DataTemplate;
45
                    }
46
                }
47
                else
48
                {
49
                    if ((MessageSide)message.MSGSIDE == MessageSide.Me)
50
                    {
51
                        ContentTemplate = App.Current.Resources["MeTemplate_Anchor"] as DataTemplate;
52
                        //ContentTemplate = MeTemplate;
53
                    }
54
                    else
55
                    {
56
                        ContentTemplate = App.Current.Resources["YouTemplate_Anchor"] as DataTemplate;
57
                    }
58

    
59
                    
60
                }
61
            }
62
        }
63
    }
64
}
클립보드 이미지 추가 (최대 크기: 500 MB)