├── WeChat.NET
├── .vs
│ └── WeChat.NET
│ │ └── v14
│ │ └── .suo
├── DLL
│ ├── Newtonsoft.Json.dll
│ ├── GalaSoft.MvvmLight.WPF4.dll
│ └── GalaSoft.MvvmLight.Extras.WPF4.dll
├── WeChat.WPF
│ ├── Wechat.ico
│ ├── Image
│ │ ├── male.png
│ │ ├── Wechat.ico
│ │ ├── emoji.png
│ │ ├── female.png
│ │ └── huadong.png
│ ├── App.config
│ ├── Properties
│ │ ├── Settings.settings
│ │ ├── Settings.Designer.cs
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ └── Resources.resx
│ ├── App.xaml.cs
│ ├── App.xaml
│ ├── Controls
│ │ ├── ScrollingListBox.cs
│ │ ├── BindableRichTextBox.cs
│ │ └── NotificationAreaIcon.cs
│ ├── Modules
│ │ ├── Login
│ │ │ ├── View
│ │ │ │ ├── QRCodeUC.xaml.cs
│ │ │ │ ├── LoginInfoUC.xaml.cs
│ │ │ │ ├── QRCodeUC.xaml
│ │ │ │ ├── LoginInfoUC.xaml
│ │ │ │ ├── LoginUC.xaml.cs
│ │ │ │ └── LoginUC.xaml
│ │ │ └── ViewModel
│ │ │ │ └── LoginVM.cs
│ │ ├── ComManage
│ │ │ └── WeChatViewModelLocator.cs
│ │ └── Main
│ │ │ ├── Model
│ │ │ ├── ChatMsg.cs
│ │ │ ├── WeChatMsg.cs
│ │ │ └── WeChatUser.cs
│ │ │ └── View
│ │ │ ├── MainUC.xaml.cs
│ │ │ └── MainUC.xaml
│ ├── Conver
│ │ ├── NullConvertVisibility.cs
│ │ ├── EmptyConvertVisibility.cs
│ │ ├── ModelConvertVisibility.cs
│ │ ├── objectConvertHeight.cs
│ │ ├── BoolConvertVisibility.cs
│ │ ├── objectConvertColor.cs
│ │ ├── ParameterConvertVisibility.cs
│ │ └── CountConvertVisibility.cs
│ └── WeChat.WPF.csproj
├── WeChat.Emoji
│ ├── Image
│ │ ├── qqface0.png
│ │ ├── qqface1.png
│ │ ├── qqface2.png
│ │ ├── qqface3.png
│ │ ├── qqface4.png
│ │ ├── qqface5.png
│ │ ├── qqface6.png
│ │ ├── qqface7.png
│ │ ├── qqface8.png
│ │ ├── qqface9.png
│ │ ├── qqface10.png
│ │ ├── qqface11.png
│ │ ├── qqface12.png
│ │ ├── qqface13.png
│ │ ├── qqface14.png
│ │ ├── qqface15.png
│ │ ├── qqface16.png
│ │ ├── qqface17.png
│ │ ├── qqface18.png
│ │ ├── qqface19.png
│ │ ├── qqface20.png
│ │ ├── qqface21.png
│ │ ├── qqface22.png
│ │ ├── qqface23.png
│ │ ├── qqface24.png
│ │ ├── qqface25.png
│ │ ├── qqface26.png
│ │ ├── qqface27.png
│ │ ├── qqface28.png
│ │ ├── qqface29.png
│ │ ├── qqface30.png
│ │ ├── qqface31.png
│ │ ├── qqface32.png
│ │ ├── qqface33.png
│ │ ├── qqface34.png
│ │ ├── qqface35.png
│ │ ├── qqface36.png
│ │ ├── qqface37.png
│ │ ├── qqface38.png
│ │ ├── qqface39.png
│ │ ├── qqface40.png
│ │ ├── qqface41.png
│ │ ├── qqface42.png
│ │ ├── qqface43.png
│ │ ├── qqface44.png
│ │ ├── qqface45.png
│ │ ├── qqface46.png
│ │ ├── qqface47.png
│ │ ├── qqface48.png
│ │ ├── qqface49.png
│ │ ├── qqface50.png
│ │ ├── qqface51.png
│ │ ├── qqface52.png
│ │ ├── qqface53.png
│ │ ├── qqface54.png
│ │ ├── qqface55.png
│ │ ├── qqface56.png
│ │ ├── qqface57.png
│ │ ├── qqface58.png
│ │ ├── qqface59.png
│ │ ├── qqface60.png
│ │ ├── qqface61.png
│ │ ├── qqface62.png
│ │ ├── qqface63.png
│ │ ├── qqface64.png
│ │ ├── qqface65.png
│ │ ├── qqface66.png
│ │ ├── qqface67.png
│ │ ├── qqface68.png
│ │ ├── qqface69.png
│ │ ├── qqface70.png
│ │ ├── qqface71.png
│ │ ├── qqface72.png
│ │ ├── qqface73.png
│ │ ├── qqface74.png
│ │ ├── qqface75.png
│ │ ├── qqface76.png
│ │ ├── qqface77.png
│ │ ├── qqface78.png
│ │ ├── qqface79.png
│ │ ├── qqface80.png
│ │ ├── qqface81.png
│ │ ├── qqface82.png
│ │ ├── qqface83.png
│ │ ├── qqface84.png
│ │ ├── qqface85.png
│ │ ├── qqface86.png
│ │ ├── qqface87.png
│ │ ├── qqface88.png
│ │ ├── qqface89.png
│ │ ├── qqface90.png
│ │ ├── qqface91.png
│ │ ├── qqface92.png
│ │ ├── qqface93.png
│ │ ├── qqface94.png
│ │ ├── qqface95.png
│ │ ├── qqface96.png
│ │ ├── qqface97.png
│ │ ├── qqface98.png
│ │ └── qqface99.png
│ ├── ContantClass.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── emojiEntity.cs
│ ├── EmojiTabControlUC.xaml.cs
│ ├── AnalysisXML.cs
│ ├── Emoji.xml
│ ├── WeChat.Emoji.csproj
│ └── EmojiTabControlUC.xaml
├── WeChat.HTTP
│ ├── MethodEnum.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── StaticCode.cs
│ ├── StaticUrl.cs
│ ├── WeChat.HTTP.csproj
│ ├── BaseService.cs
│ ├── LoginService.cs
│ └── WeChatService.cs
├── WeChat.Tools
│ ├── Helpers
│ │ ├── NumHelper.cs
│ │ ├── TimeHelper.cs
│ │ └── ImageHelper.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── WeChat.Tools.csproj
├── WeChat.Controls
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── FriendsListBox.xaml
│ ├── FriendsListBox.xaml.cs
│ └── WeChat.Controls.csproj
└── WeChat.NET.sln
├── .gitattributes
└── .gitignore
/WeChat.NET/.vs/WeChat.NET/v14/.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/.vs/WeChat.NET/v14/.suo
--------------------------------------------------------------------------------
/WeChat.NET/DLL/Newtonsoft.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/DLL/Newtonsoft.Json.dll
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Wechat.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.WPF/Wechat.ico
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Image/male.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.WPF/Image/male.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Image/Wechat.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.WPF/Image/Wechat.ico
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Image/emoji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.WPF/Image/emoji.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Image/female.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.WPF/Image/female.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Image/huadong.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.WPF/Image/huadong.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface0.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface1.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface2.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface3.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface4.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface5.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface6.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface7.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface8.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface9.png
--------------------------------------------------------------------------------
/WeChat.NET/DLL/GalaSoft.MvvmLight.WPF4.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/DLL/GalaSoft.MvvmLight.WPF4.dll
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface10.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface11.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface12.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface13.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface14.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface15.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface16.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface17.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface18.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface19.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface20.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface21.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface22.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface22.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface23.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface23.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface24.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface25.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface25.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface26.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface26.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface27.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface27.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface28.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface28.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface29.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface30.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface31.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface31.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface32.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface33.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface33.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface34.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface34.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface35.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface35.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface36.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface37.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface37.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface38.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface39.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface39.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface40.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface41.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface41.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface42.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface42.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface43.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface43.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface44.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface44.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface45.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface45.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface46.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface46.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface47.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface47.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface48.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface49.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface49.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface50.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface51.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface51.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface52.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface52.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface53.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface53.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface54.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface54.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface55.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface55.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface56.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface56.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface57.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface58.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface58.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface59.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface59.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface60.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface61.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface61.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface62.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface62.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface63.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface63.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface64.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface65.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface65.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface66.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface66.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface67.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface67.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface68.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface68.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface69.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface69.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface70.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface71.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface71.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface72.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface73.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface73.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface74.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface74.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface75.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface75.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface76.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface77.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface77.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface78.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface78.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface79.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface79.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface80.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface81.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface81.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface82.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface82.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface83.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface83.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface84.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface84.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface85.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface85.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface86.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface86.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface87.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface87.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface88.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface88.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface89.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface89.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface90.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface90.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface91.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface91.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface92.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface92.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface93.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface93.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface94.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface94.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface95.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface95.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface96.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface97.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface97.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface98.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface98.png
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Image/qqface99.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/WeChat.Emoji/Image/qqface99.png
--------------------------------------------------------------------------------
/WeChat.NET/DLL/GalaSoft.MvvmLight.Extras.WPF4.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yanchao891012/WPF_WeChat/HEAD/WeChat.NET/DLL/GalaSoft.MvvmLight.Extras.WPF4.dll
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.HTTP/MethodEnum.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace WeChat.HTTP
8 | {
9 | public enum MethodEnum
10 | {
11 | GET,
12 | POST
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Linq;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 |
9 | namespace WeChat.WPF
10 | {
11 | ///
12 | /// App.xaml 的交互逻辑
13 | ///
14 | public partial class App : Application
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 |
7 | # Standard to msysgit
8 | *.doc diff=astextplain
9 | *.DOC diff=astextplain
10 | *.docx diff=astextplain
11 | *.DOCX diff=astextplain
12 | *.dot diff=astextplain
13 | *.DOT diff=astextplain
14 | *.pdf diff=astextplain
15 | *.PDF diff=astextplain
16 | *.rtf diff=astextplain
17 | *.RTF diff=astextplain
18 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Tools/Helpers/NumHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace WeChat.Tools.Helpers
7 | {
8 | public class NumHelper
9 | {
10 | ///
11 | /// 返回一个随机数
12 | ///
13 | /// 位数
14 | ///
15 | public static string RandomNum(int N)
16 | {
17 | string resultNum = string.Empty;
18 | Random random = new Random();
19 | for (int i = 0; i < N; i++)
20 | {
21 | resultNum += random.Next(9);
22 | }
23 | return resultNum;
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Controls/ScrollingListBox.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows.Controls;
6 |
7 | namespace WeChat.WPF.Controls
8 | {
9 | public class ScrollingListBox : ListBox
10 | {
11 | protected override void OnItemsChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
12 | {
13 | if (e.NewItems!=null)
14 | {
15 | int newItemCount = e.NewItems.Count;
16 |
17 | if (newItemCount > 0)
18 | this.ScrollIntoView(e.NewItems[newItemCount - 1]);
19 |
20 | base.OnItemsChanged(e);
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/ContantClass.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows.Media.Imaging;
6 |
7 | namespace WeChat.Emoji
8 | {
9 | public class ContantClass
10 | {
11 | private static Dictionary _emojiCode = new Dictionary();//emoji编码
12 | ///
13 | /// emoji编码
14 | ///
15 | public static Dictionary EmojiCode
16 | {
17 | get
18 | {
19 | return _emojiCode;
20 | }
21 |
22 | set
23 | {
24 | _emojiCode = value;
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Modules/Login/View/QRCodeUC.xaml.cs:
--------------------------------------------------------------------------------
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 System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace WeChat.WPF.Modules.Login.View
16 | {
17 | ///
18 | /// QRCode.xaml 的交互逻辑
19 | ///
20 | public partial class QRCodeUC : UserControl
21 | {
22 | public QRCodeUC()
23 | {
24 | InitializeComponent();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Modules/Login/View/LoginInfoUC.xaml.cs:
--------------------------------------------------------------------------------
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 System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace WeChat.WPF.Modules.Login.View
16 | {
17 | ///
18 | /// LoginInfoUC.xaml 的交互逻辑
19 | ///
20 | public partial class LoginInfoUC : UserControl
21 | {
22 | public LoginInfoUC()
23 | {
24 | InitializeComponent();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Conver/NullConvertVisibility.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Windows;
7 | using System.Windows.Data;
8 |
9 | namespace WeChat.WPF.Conver
10 | {
11 | class NullConvertVisibility : IValueConverter
12 | {
13 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
14 | {
15 | if (value == null)
16 | {
17 | return Visibility.Visible;
18 | }
19 | return Visibility.Collapsed;
20 | }
21 |
22 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
23 | {
24 | throw new NotImplementedException();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Conver/EmptyConvertVisibility.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Windows;
7 | using System.Windows.Data;
8 |
9 | namespace WeChat.WPF.Conver
10 | {
11 | class EmptyConvertVisibility : IValueConverter
12 | {
13 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
14 | {
15 |
16 | if (value !=null && !string.IsNullOrEmpty(value.ToString()))
17 | {
18 | return Visibility.Visible;
19 | }
20 | return Visibility.Collapsed;
21 | }
22 |
23 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
24 | {
25 | throw new NotImplementedException();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Conver/ModelConvertVisibility.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Windows;
7 | using System.Windows.Data;
8 | using WeChat.WPF.Modules.Main.Model;
9 |
10 | namespace WeChat.WPF.Conver
11 | {
12 | class ModelConvertVisibility : IValueConverter
13 | {
14 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
15 | {
16 | if (value is WeChatUser)
17 | {
18 | return Visibility.Collapsed;
19 | }
20 | return Visibility.Visible;
21 | }
22 |
23 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
24 | {
25 | throw new NotImplementedException();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Conver/objectConvertHeight.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Windows;
7 | using System.Windows.Data;
8 | using WeChat.WPF.Modules.Main.Model;
9 |
10 | namespace WeChat.WPF.Conver
11 | {
12 | class ObjectConvertHeight : IValueConverter
13 | {
14 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
15 | {
16 | if (value is WeChatUser)
17 | {
18 | return new FrameworkElement().Height = double.NaN;
19 | }
20 | return new FrameworkElement().Height = 25;
21 | }
22 |
23 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
24 | {
25 | throw new NotImplementedException();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Conver/BoolConvertVisibility.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Windows;
7 | using System.Windows.Data;
8 |
9 | namespace WeChat.WPF.Conver
10 | {
11 | class BoolConvertVisibility : IValueConverter
12 | {
13 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
14 | {
15 | if (value != null)
16 | {
17 | if ((bool)value == true)
18 | return Visibility.Visible;
19 | else
20 | return Visibility.Collapsed;
21 | }
22 | return Visibility.Visible;
23 | }
24 |
25 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
26 | {
27 | throw new NotImplementedException();
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Conver/objectConvertColor.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Windows.Data;
7 | using System.Windows.Media;
8 | using WeChat.WPF.Modules.Main.Model;
9 |
10 | namespace WeChat.WPF.Conver
11 | {
12 | class ObjectConvertColor : IValueConverter
13 | {
14 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
15 | {
16 | if (value is WeChatUser)
17 | {
18 | return (Brush)new BrushConverter().ConvertFromString("#FFEAEAEA");
19 | }
20 | return (Brush)new BrushConverter().ConvertFromString("#FFE0E0E0");
21 | }
22 |
23 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
24 | {
25 | throw new NotImplementedException();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Conver/ParameterConvertVisibility.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Windows;
7 | using System.Windows.Data;
8 |
9 | namespace WeChat.WPF.Conver
10 | {
11 | class ParameterConvertVisibility : IValueConverter
12 | {
13 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
14 | {
15 | if (value !=null && !string.IsNullOrEmpty(value.ToString()))
16 | {
17 | if (value.ToString()==parameter.ToString())
18 | {
19 | return Visibility.Visible;
20 | }
21 | }
22 | return Visibility.Collapsed;
23 | }
24 |
25 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
26 | {
27 | throw new NotImplementedException();
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Conver/CountConvertVisibility.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Windows;
7 | using System.Windows.Data;
8 |
9 | namespace WeChat.WPF.Conver
10 | {
11 | ///
12 | /// 个数转换是否显示
13 | /// 当未读数字大于0时显示,小于0则不显示
14 | ///
15 | class CountConvertVisibility : IValueConverter
16 | {
17 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
18 | {
19 | if (value !=null )
20 | {
21 | if ((int)value>0)
22 | {
23 | return Visibility.Visible;
24 | }
25 | }
26 | return Visibility.Collapsed;
27 | }
28 |
29 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
30 | {
31 | throw new NotImplementedException();
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Tools/Helpers/TimeHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace WeChat.Tools.Helpers
8 | {
9 | public class TimeHelper
10 | {
11 | ///
12 | /// 时间戳
13 | ///
14 | ///
15 | public static long GetTimeStamp()
16 | {
17 | TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
18 | return Convert.ToInt64(ts.TotalSeconds);
19 | //DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0));
20 | //long time = (DateTime.Now.Ticks - startTime.Ticks) / 10000;
21 | //return time;
22 | }
23 | ///
24 | /// 时间戳取反
25 | ///
26 | ///
27 | public static long GetTimeStamp_TakeBack()
28 | {
29 | return ~GetTimeStamp();
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本:4.0.30319.42000
5 | //
6 | // 对此文件的更改可能会导致不正确的行为,并且如果
7 | // 重新生成代码,这些更改将会丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace WeChat.WPF.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.HTTP/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的一般信息由以下
6 | // 控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("WeChat.HTTP")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("WeChat.HTTP")]
13 | [assembly: AssemblyCopyright("Copyright © 2016")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | //将 ComVisible 设置为 false 将使此程序集中的类型
18 | //对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
19 | //请将此类型的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("5f956b4a-d064-4668-a181-d02c37fc639e")]
24 |
25 | // 程序集的版本信息由下列四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”: :
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Tools/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的一般信息由以下
6 | // 控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("WeChat.Tools")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("WeChat.Tools")]
13 | [assembly: AssemblyCopyright("Copyright © 2016")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | //将 ComVisible 设置为 false 将使此程序集中的类型
18 | //对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
19 | //请将此类型的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("f2f079e7-fc21-4f84-ae1a-269e8fd47dc3")]
24 |
25 | // 程序集的版本信息由下列四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”: :
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的一般信息由以下
6 | // 控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("WeChat.Emoji")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("WeChat.Emoji")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | //将 ComVisible 设置为 false 将使此程序集中的类型
18 | //对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
19 | //请将此类型的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("b0369077-30b0-4f55-aee9-dbdf61a7e6c3")]
24 |
25 | // 程序集的版本信息由下列四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”: :
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Controls/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的一般信息由以下
6 | // 控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("WeChat.Controls")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("WeChat.Controls")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | //将 ComVisible 设置为 false 将使此程序集中的类型
18 | //对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
19 | //请将此类型的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("ce6120ac-1e91-4ff1-a290-6d87b215b361")]
24 |
25 | // 程序集的版本信息由下列四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”: :
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Windows image file caches
2 | Thumbs.db
3 | ehthumbs.db
4 |
5 | # Folder config file
6 | Desktop.ini
7 |
8 | # Recycle Bin used on file shares
9 | $RECYCLE.BIN/
10 |
11 | # Windows Installer files
12 | *.cab
13 | *.msi
14 | *.msm
15 | *.msp
16 |
17 | # Windows shortcuts
18 | *.lnk
19 |
20 | # =========================
21 | # Operating System Files
22 | # =========================
23 |
24 | # OSX
25 | # =========================
26 |
27 | .DS_Store
28 | .AppleDouble
29 | .LSOverride
30 |
31 | # Thumbnails
32 | ._*
33 |
34 | # Files that might appear in the root of a volume
35 | .DocumentRevisions-V100
36 | .fseventsd
37 | .Spotlight-V100
38 | .TemporaryItems
39 | .Trashes
40 | .VolumeIcon.icns
41 |
42 | # Directories potentially created on remote AFP share
43 | .AppleDB
44 | .AppleDesktop
45 | Network Trash Folder
46 | Temporary Items
47 | .apdisk
48 | /WeChat.NET/WeChat.WPF/bin/x86/Debug
49 | /WeChat.NET/WeChat.Tools/bin/x86/Debug
50 | /WeChat.NET/WeChat.HTTP/bin/x86/Debug
51 | /WeChat.NET/WeChat.WPF/obj/x86/Debug
52 | /WeChat.NET/WeChat.Tools/obj/x86/Debug
53 | /WeChat.NET/WeChat.HTTP/obj/x86/Debug
54 | /WeChat.NET/WeChat.WPF/obj/Debug
55 | /WeChat.NET/WeChat.Tools/obj/Debug
56 | /WeChat.NET/WeChat.HTTP/obj/Debug
57 | /WeChat.NET/WeChat.Emoji/bin/Debug
58 | /WeChat.NET/WeChat.Emoji/obj/Debug
59 | /WeChat.NET/.vs/WeChat.NET/v14
60 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/emojiEntity.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows.Media.Imaging;
6 |
7 | namespace WeChat.Emoji
8 | {
9 | public class emojiEntity
10 | {
11 | private string _key;//分组
12 | private BitmapImage _keyImg;//分组图像
13 | private Dictionary _emojiCode = new Dictionary();//emoji编码
14 |
15 | ///
16 | /// 分组
17 | ///
18 | public string Key
19 | {
20 | get
21 | {
22 | return _key;
23 | }
24 |
25 | set
26 | {
27 | _key = value;
28 | }
29 | }
30 | ///
31 | /// emoji编码
32 | ///
33 | public Dictionary EmojiCode
34 | {
35 | get
36 | {
37 | return _emojiCode;
38 | }
39 |
40 | set
41 | {
42 | _emojiCode = value;
43 | }
44 | }
45 | ///
46 | /// 分组图像
47 | ///
48 | public BitmapImage KeyImg
49 | {
50 | get
51 | {
52 | return _keyImg = EmojiCode.Values.First();
53 | }
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Controls/FriendsListBox.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
24 |
25 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Modules/Login/View/QRCodeUC.xaml:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Controls/FriendsListBox.xaml.cs:
--------------------------------------------------------------------------------
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 System.Windows.Data;
8 | using System.Windows.Documents;
9 | using System.Windows.Input;
10 | using System.Windows.Media;
11 | using System.Windows.Media.Imaging;
12 | using System.Windows.Navigation;
13 | using System.Windows.Shapes;
14 |
15 | namespace WeChat.Controls
16 | {
17 | ///
18 | /// FriendsListBox.xaml 的交互逻辑
19 | ///
20 | public partial class FriendsListBox : ListBox
21 | {
22 | public FriendsListBox()
23 | {
24 | InitializeComponent();
25 | }
26 |
27 | ///
28 | /// 图片
29 | ///
30 | private ImageBrush _imgSource;
31 | ///
32 | /// 用户名
33 | ///
34 | private string _userName;
35 | ///
36 | /// 图片
37 | ///
38 | public ImageBrush ImgSource
39 | {
40 | get
41 | {
42 | return _imgSource;
43 | }
44 |
45 | set
46 | {
47 | _imgSource = value;
48 | }
49 | }
50 | ///
51 | /// 用户名
52 | ///
53 | public string UserName
54 | {
55 | get
56 | {
57 | return _userName;
58 | }
59 |
60 | set
61 | {
62 | _userName = value;
63 | }
64 | }
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Modules/ComManage/WeChatViewModelLocator.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using WeChat.WPF.Modules.Login.ViewModel;
6 | using WeChat.WPF.Modules.Main.ViewModel;
7 |
8 | namespace WeChat.WPF.Modules.ComManage
9 | {
10 | class WeChatViewModelLocator
11 | {
12 | private static readonly object SyObject = new object();
13 |
14 | private static WeChatViewModelLocator _instance;
15 | ///
16 | /// ViewModel实例创建
17 | ///
18 | public static WeChatViewModelLocator Instance
19 | {
20 | get
21 | {
22 | lock (SyObject)
23 | {
24 | if (_instance == null)
25 | {
26 | _instance = new WeChatViewModelLocator();
27 | }
28 | }
29 |
30 | return _instance;
31 | }
32 |
33 | set
34 | {
35 | _instance = value;
36 | }
37 | }
38 |
39 | private LoginVM _loginViewModel;
40 | ///
41 | /// 登录
42 | ///
43 | public LoginVM LoginViewModel
44 | {
45 | get
46 | {
47 | return _loginViewModel ?? (_loginViewModel = new LoginVM());
48 | }
49 | }
50 |
51 | private MainVM _mainViewModel;
52 | ///
53 | /// 主页面
54 | ///
55 | public MainVM MainViewModel
56 | {
57 | get
58 | {
59 | return _mainViewModel ?? (_mainViewModel = new MainVM());
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Resources;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 | using System.Windows;
6 |
7 | // 有关程序集的一般信息由以下
8 | // 控制。更改这些特性值可修改
9 | // 与程序集关联的信息。
10 | [assembly: AssemblyTitle("WeChat.WPF")]
11 | [assembly: AssemblyDescription("")]
12 | [assembly: AssemblyConfiguration("")]
13 | [assembly: AssemblyCompany("")]
14 | [assembly: AssemblyProduct("WeChat.WPF")]
15 | [assembly: AssemblyCopyright("Copyright © 2016")]
16 | [assembly: AssemblyTrademark("")]
17 | [assembly: AssemblyCulture("")]
18 |
19 | //将 ComVisible 设置为 false 将使此程序集中的类型
20 | //对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
21 | //请将此类型的 ComVisible 特性设置为 true。
22 | [assembly: ComVisible(false)]
23 |
24 | //若要开始生成可本地化的应用程序,请
25 | // 中的 .csproj 文件中
26 | //例如,如果您在源文件中使用的是美国英语,
27 | //使用的是美国英语,请将 设置为 en-US。 然后取消
28 | //对以下 NeutralResourceLanguage 特性的注释。 更新
29 | //以下行中的“en-US”以匹配项目文件中的 UICulture 设置。
30 |
31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
32 |
33 |
34 | [assembly: ThemeInfo(
35 | ResourceDictionaryLocation.None, //主题特定资源词典所处位置
36 | //(当资源未在页面
37 | //或应用程序资源字典中找到时使用)
38 | ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置
39 | //(当资源未在页面
40 | //、应用程序或任何主题专用资源字典中找到时使用)
41 | )]
42 |
43 |
44 | // 程序集的版本信息由下列四个值组成:
45 | //
46 | // 主版本
47 | // 次版本
48 | // 生成号
49 | // 修订号
50 | //
51 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
52 | // 方法是按如下所示使用“*”: :
53 | // [assembly: AssemblyVersion("1.0.*")]
54 | [assembly: AssemblyVersion("1.0.0.0")]
55 | [assembly: AssemblyFileVersion("1.0.0.0")]
56 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Modules/Main/Model/ChatMsg.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Windows;
6 | using System.Windows.Documents;
7 | using System.Windows.Media;
8 |
9 | namespace WeChat.WPF.Modules.Main.Model
10 | {
11 | public class ChatMsg
12 | {
13 |
14 | private ImageSource _image;
15 |
16 | public ImageSource Image
17 | {
18 | get
19 | {
20 | return _image;
21 | }
22 |
23 | set
24 | {
25 | _image = value;
26 | }
27 | }
28 |
29 | private FlowDocument _message=new FlowDocument();
30 | ///
31 | /// 显示的内容
32 | ///
33 | public FlowDocument Message
34 | {
35 | get
36 | {
37 | return _message;
38 | }
39 |
40 | set
41 | {
42 | _message = value;
43 | }
44 | }
45 |
46 | private FlowDirection _flowDir;
47 | ///
48 | /// 显示方向
49 | ///
50 | public FlowDirection FlowDir
51 | {
52 | get
53 | {
54 | return _flowDir;
55 | }
56 |
57 | set
58 | {
59 | _flowDir = value;
60 | }
61 | }
62 |
63 | private Brush _tbColor;
64 | ///
65 | /// 显示的背景颜色
66 | ///
67 | public Brush TbColor
68 | {
69 | get
70 | {
71 | return _tbColor;
72 | }
73 |
74 | set
75 | {
76 | _tbColor = value;
77 | }
78 | }
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Modules/Login/View/LoginInfoUC.xaml:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Tools/Helpers/ImageHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Drawing;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Windows.Media;
8 | using System.Windows.Media.Imaging;
9 |
10 | namespace WeChat.Tools.Helpers
11 | {
12 | public class ImageHelper
13 | {
14 | ///
15 | /// Memory转成ImageSource
16 | ///
17 | ///
18 | ///
19 | public static ImageSource MemoryToImageSource(MemoryStream ms)
20 | {
21 | return (ImageSource)(new ImageSourceConverter()).ConvertFrom(ms);
22 | }
23 | ///
24 | /// Memory转成ImageSource
25 | ///
26 | ///
27 | ///
28 | public static ImageSource MemoryToImageSourceOther(MemoryStream ms)
29 | {
30 | Image img = Image.FromStream(ms);
31 | Bitmap bmp = new Bitmap(img);
32 | BitmapSource bi = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bmp.GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
33 | return bi;
34 | }
35 | ///
36 | /// Memory转成ImageSource
37 | /// 二维码的白色部分变成透明
38 | ///
39 | ///
40 | ///
41 | public static ImageSource MemoryToImageSource_Transparent(MemoryStream ms)
42 | {
43 | Image img = Image.FromStream(ms);
44 | Bitmap bmp = new Bitmap(img);
45 | bmp.MakeTransparent(System.Drawing.Color.White);
46 | BitmapSource bi= System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bmp.GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
47 | return bi;
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Controls/BindableRichTextBox.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Documents;
9 | using System.Windows.Media;
10 |
11 | namespace WeChat.WPF.Controls
12 | {
13 | public class BindableRichTextBox : RichTextBox
14 | {
15 | public new FlowDocument Document
16 | {
17 | get { return (FlowDocument)GetValue(DocumentProperty); }
18 | set { SetValue(DocumentProperty, value); }
19 | }
20 |
21 | // Using a DependencyProperty as the backing store for Document. This enables animation, styling, binding, etc...
22 | public static readonly DependencyProperty DocumentProperty =
23 | DependencyProperty.Register("Document", typeof(FlowDocument), typeof(BindableRichTextBox), new FrameworkPropertyMetadata(null,new PropertyChangedCallback(OnDucumentChanged)));
24 |
25 | private static void OnDucumentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
26 | {
27 | RichTextBox rtb = (RichTextBox)d;
28 | rtb.Document = (FlowDocument)e.NewValue;
29 | TextRange tr = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
30 | Size size = MeasureString(tr.Text, rtb);
31 | rtb.Width = size.Width + 30;
32 | }
33 | private static Size MeasureString(string candidate, RichTextBox rtb)
34 | {
35 | var formattedText = new FormattedText(
36 | candidate,
37 | CultureInfo.CurrentUICulture,
38 | FlowDirection.LeftToRight,
39 | new Typeface(rtb.FontFamily, rtb.FontStyle, rtb.FontWeight, rtb.FontStretch),
40 | rtb.FontSize,
41 | Brushes.Black);
42 |
43 | return new Size(formattedText.Width, formattedText.Height);
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.HTTP/StaticCode.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace WeChat.HTTP
8 | {
9 | public class StaticCode
10 | {
11 | public static class LoginCode
12 | {
13 | ///
14 | /// 确认登录
15 | ///
16 | public static string code_LoginSuccess = "200";
17 | ///
18 | /// 扫描成功
19 | ///
20 | public static string code_LoginWait = "201";
21 | ///
22 | /// 登陆超时
23 | ///
24 | public static string code_LoginTimeOut = "408";
25 | }
26 |
27 | //public static class MethodCode
28 | //{
29 | // ///
30 | // /// POST
31 | // ///
32 | // public static string code_Post = "POST";
33 | // ///
34 | // /// GET
35 | // ///
36 | // public static string code_Get = "GET";
37 | //}
38 |
39 | public static class RetCode
40 | {
41 | ///
42 | /// 正常
43 | ///
44 | public static string code_Normal = "0";
45 | ///
46 | /// 失败/退出微信
47 | ///
48 | public static string code_Miss = "1100";
49 | }
50 |
51 | public static class SelectorCode
52 | {
53 | ///
54 | /// 正常
55 | ///
56 | public static string code_Normal = "0";
57 | ///
58 | /// 新的消息
59 | ///
60 | public static string code_New = "2";
61 | ///
62 | /// 进入/离开聊天界面
63 | ///
64 | public static string code_InOrLeave = "7";
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Modules/Main/Model/WeChatMsg.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace WeChat.WPF.Modules.Main.Model
7 | {
8 | ///
9 | /// 微信消息
10 | ///
11 | public class WeChatMsg
12 | {
13 | private string _from;
14 | private string _to;
15 | private DateTime _time;
16 | private bool _readed;
17 | private string _msg;
18 | private int _type;
19 | ///
20 | /// 消息发送方
21 | ///
22 | public string From
23 | {
24 | get
25 | {
26 | return _from;
27 | }
28 |
29 | set
30 | {
31 | _from = value;
32 | }
33 | }
34 | ///
35 | /// 消息接收方
36 | ///
37 | public string To
38 | {
39 | get
40 | {
41 | return _to;
42 | }
43 |
44 | set
45 | {
46 | _to = value;
47 | }
48 | }
49 | ///
50 | /// 消息发送时间
51 | ///
52 | public DateTime Time
53 | {
54 | get
55 | {
56 | return _time;
57 | }
58 |
59 | set
60 | {
61 | _time = value;
62 | }
63 | }
64 | ///
65 | /// 是否已读
66 | ///
67 | public bool Readed
68 | {
69 | get
70 | {
71 | return _readed;
72 | }
73 |
74 | set
75 | {
76 | _readed = value;
77 | }
78 | }
79 | ///
80 | /// 消息内容
81 | ///
82 | public string Msg
83 | {
84 | get
85 | {
86 | return _msg;
87 | }
88 |
89 | set
90 | {
91 | _msg = value;
92 | }
93 | }
94 | ///
95 | /// 消息类型
96 | ///
97 | public int Type
98 | {
99 | get
100 | {
101 | return _type;
102 | }
103 |
104 | set
105 | {
106 | _type = value;
107 | }
108 | }
109 | }
110 | }
111 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本:4.0.30319.42000
5 | //
6 | // 对此文件的更改可能会导致不正确的行为,并且如果
7 | // 重新生成代码,这些更改将会丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace WeChat.WPF.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// 一个强类型的资源类,用于查找本地化的字符串等。
17 | ///
18 | // 此类是由 StronglyTypedResourceBuilder
19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
20 | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
21 | // (以 /str 作为命令选项),或重新生成 VS 项目。
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// 返回此类使用的缓存的 ResourceManager 实例。
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WeChat.WPF.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// 使用此强类型资源类,为所有资源查找
51 | /// 重写当前线程的 CurrentUICulture 属性。
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.Emoji/EmojiTabControlUC.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Collections.ObjectModel;
4 | using System.ComponentModel;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Windows;
8 | using System.Windows.Controls;
9 | using System.Windows.Data;
10 | using System.Windows.Documents;
11 | using System.Windows.Input;
12 | using System.Windows.Media;
13 | using System.Windows.Media.Imaging;
14 | using System.Windows.Navigation;
15 | using System.Windows.Shapes;
16 |
17 | namespace WeChat.Emoji
18 | {
19 | ///
20 | /// EmojiTabControlUC.xaml 的交互逻辑
21 | ///
22 | public partial class EmojiTabControlUC : UserControl
23 | {
24 | public event EventHandler Close;
25 | public EmojiTabControlUC()
26 | {
27 | InitializeComponent();
28 | if (EmojiList.Count>0)
29 | {
30 | return;
31 | }
32 | AnalysisXML anlyxml = new AnalysisXML();
33 | anlyxml.AnayXML();
34 | EmojiList = new ObservableCollection(anlyxml.EmojiList);
35 | }
36 |
37 | private KeyValuePair selectEmoji = new KeyValuePair();
38 | ///
39 | /// 选中项
40 | ///
41 | public KeyValuePair SelectEmoji
42 | {
43 | get
44 | {
45 | return selectEmoji;
46 | }
47 |
48 | set
49 | {
50 | selectEmoji = value;
51 | }
52 | }
53 |
54 | private static ObservableCollection emojiList = new ObservableCollection();
55 |
56 | ///
57 | /// emoji集合
58 | ///
59 | public static ObservableCollection EmojiList
60 | {
61 | get
62 | {
63 | return emojiList;
64 | }
65 |
66 | set
67 | {
68 | emojiList = value;
69 | }
70 | }
71 | ///
72 | /// 点选事件
73 | ///
74 | ///
75 | ///
76 | private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
77 | {
78 | ListBox lb = sender as ListBox;
79 | if (lb.SelectedItem != null)
80 | {
81 | SelectEmoji = (KeyValuePair)lb.SelectedItem;
82 | if (Close != null)
83 | {
84 | Close(this, null);
85 | }
86 | }
87 | else
88 | return;
89 | }
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.HTTP/StaticUrl.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using WeChat.Tools.Helpers;
7 |
8 | namespace WeChat.HTTP
9 | {
10 | ///
11 | /// 所有的Url
12 | ///
13 | public class StaticUrl
14 | {
15 | public static string stringWx = "https://wx.qq.com";
16 |
17 | public static string stringWebPush = "https://webpush.weixin.qq.com";
18 |
19 | ///
20 | /// 获取会话的UUID
21 | ///
22 | public static string Url_GetUUID = "https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&fun=new&lang=zh_CN&_=";
23 | ///
24 | /// 获取二维码的URL
25 | ///
26 | public static string Url_GetQrCode = "https://login.weixin.qq.com/qrcode/";
27 | ///
28 | /// 等待扫码登陆
29 | ///
30 | public static string Url_WaitLogin = "https://login.weixin.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=";
31 | ///
32 | /// 微信初始化
33 | ///
34 | public static string Url_Init = "/cgi-bin/mmwebwx-bin/webwxinit?r=";
35 | ///
36 | /// 开启微信状态通知
37 | ///
38 | public static string Url_StatusNotify = stringWx + "/cgi-bin/mmwebwx-bin/webwxstatusnotify?lang=zh_CN&pass_ticket=";
39 | ///
40 | /// 获取好友列表
41 | ///
42 | public static string Url_GetContact = "/cgi-bin/mmwebwx-bin/webwxgetcontact";
43 | ///
44 | /// 获取群组列表
45 | ///
46 | public static string Url_GetGroupContact = stringWx + "/cgi-bin/mmwebwx-bin/webwxbatchgetcontact?type=ex";
47 | ///
48 | /// 消息检查
49 | ///
50 | public static string Url_SyncCheck = "/cgi-bin/mmwebwx-bin/synccheck?";
51 | ///
52 | /// 获取最新消息
53 | ///
54 | public static string Url_Sync = "/cgi-bin/mmwebwx-bin/webwxsync?";
55 | ///
56 | /// 发送消息
57 | ///
58 | public static string Url_SendMsg = "/cgi-bin/mmwebwx-bin/webwxsendmsg?lang=zh_CN&sid=";
59 | ///
60 | /// 获取好友头像
61 | ///
62 | public static string Url_GetIcon = "/cgi-bin/mmwebwx-bin/webwxgeticon?username=";
63 | ///
64 | /// 获取群组头像
65 | ///
66 | public static string Url_GetHeadImg = "/cgi-bin/mmwebwx-bin/webwxgetheadimg?username=";
67 | ///
68 | /// 获取登录参数--拼接部分
69 | ///
70 | public static string Url_redirect_ext = "&fun=new&version=v2&lang=zh_CN";
71 | ///
72 | /// 同步检查扩展部分
73 | ///
74 | public static string Url_SyncCheck_ext = "sid={0}&uin={1}&synckey={2}&r={3}&skey={4}&deviceid={5}&_=";
75 | ///
76 | /// 同步扩展部分
77 | ///
78 | public static string Url_Sync_ext = "sid={0}&lang=zh_CN&skey={1}&pass_ticket={2}";
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/WeChat.NET/WeChat.WPF/Modules/Login/View/LoginUC.xaml.cs:
--------------------------------------------------------------------------------
1 | using GalaSoft.MvvmLight.Messaging;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Shapes;
14 | using WeChat.WPF.Modules.Main.View;
15 |
16 | namespace WeChat.WPF.Modules.Login.View
17 | {
18 | ///
19 | /// LoginUC.xaml 的交互逻辑
20 | ///
21 | public partial class LoginUC : Window
22 | {
23 | public LoginUC()
24 | {
25 | InitializeComponent();
26 | grid_content.Children.Add(new QRCodeUC());
27 |
28 | //收到显示登录信息广播通知
29 | Messenger.Default.Register