├── 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(this, "ShowLoginInfoUC", new Action(p => 30 | { 31 | this.Dispatcher.Invoke((Action)(() => 32 | { 33 | AddUC(new LoginInfoUC()); 34 | img.Visibility = Visibility.Collapsed; 35 | })); 36 | } 37 | )); 38 | //卸载登录信息广播 39 | this.Unloaded += (s, e) => Messenger.Default.Unregister(this, "ShowLoginInfoUC"); 40 | 41 | //收到显示二维码信息广播通知 42 | Messenger.Default.Register(this, "ShowQRCodeUC", new Action(p => 43 | { 44 | this.Dispatcher.Invoke((Action)(() => 45 | { 46 | AddUC(new QRCodeUC()); 47 | img.Visibility = Visibility.Visible; 48 | })); 49 | })); 50 | //卸载二维码信息广播 51 | this.Unloaded += (s, e) => Messenger.Default.Unregister(this, "ShowQRCodeUC"); 52 | //收到隐藏的广播 53 | Messenger.Default.Register(this, "HideLoginUC", new Action(p => 54 | { 55 | this.Dispatcher.Invoke((Action)(() => 56 | { 57 | MainUC mainUC = new MainUC(); 58 | mainUC.Show(); 59 | this.Hide(); 60 | })); 61 | })); 62 | //卸载隐藏的广播 63 | this.Unloaded += (s, e) => Messenger.Default.Unregister(this, "HideLoginUC"); 64 | } 65 | 66 | private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 67 | { 68 | //左键拖动 69 | this.DragMove(); 70 | } 71 | /// 72 | /// 关闭按钮 73 | /// 74 | /// 75 | /// 76 | private void Button_Click(object sender, RoutedEventArgs e) 77 | { 78 | //退出应用程序 79 | Environment.Exit(0); 80 | } 81 | /// 82 | /// 添加新的UC 83 | /// 84 | /// 85 | private void AddUC(UserControl uc) 86 | { 87 | grid_content.Children.Clear(); 88 | grid_content.Children.Add(uc); 89 | } 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /WeChat.NET/WeChat.Emoji/AnalysisXML.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Reflection; 6 | using System.Text; 7 | using System.Windows.Media.Imaging; 8 | using System.Xml; 9 | 10 | namespace WeChat.Emoji 11 | { 12 | public class AnalysisXML 13 | { 14 | private List emojiList = new List(); 15 | /// 16 | /// emoji集合 17 | /// 18 | public List EmojiList 19 | { 20 | get 21 | { 22 | return emojiList; 23 | } 24 | 25 | set 26 | { 27 | emojiList = value; 28 | } 29 | } 30 | /// 31 | /// 解析xml 32 | /// 33 | public void AnayXML() 34 | { 35 | XmlDocument xmlDoc = new XmlDocument(); 36 | Assembly _assembly = Assembly.GetExecutingAssembly(); 37 | Stream _stream = _assembly.GetManifestResourceStream("WeChat.Emoji.Emoji.xml");//文件需为嵌入的资源 38 | xmlDoc.Load(_stream); 39 | XmlNode root = xmlDoc.SelectSingleNode("array"); 40 | XmlNodeList nodeList = root.ChildNodes; 41 | //循环列表,获得相应的内容 42 | foreach (XmlNode xn in nodeList) 43 | { 44 | XmlElement xe = (XmlElement)xn; 45 | XmlNodeList subList = xe.ChildNodes; 46 | emojiEntity entity = new emojiEntity(); 47 | foreach (XmlNode xmlNode in subList) 48 | { 49 | if (xmlNode.Name == "key") 50 | { 51 | entity.Key = xmlNode.InnerText; 52 | } 53 | if (xmlNode.Name == "array") 54 | { 55 | XmlElement lastXe = (XmlElement)xmlNode; 56 | foreach (XmlNode lastNode in lastXe) 57 | { 58 | if (lastNode.Name == "a") 59 | { 60 | entity.EmojiCode.Add(GetEmojiStr(lastNode.InnerText), GetEmojiImage(lastNode.Attributes[1].Value)); 61 | } 62 | } 63 | } 64 | } 65 | EmojiList.Add(entity); 66 | } 67 | foreach (var item in EmojiList) 68 | { 69 | //所有的内容都添加到一个dictionary中 70 | ContantClass.EmojiCode=ContantClass.EmojiCode.Concat(item.EmojiCode).ToDictionary(k=>k.Key,v=>v.Value); 71 | } 72 | } 73 | /// 74 | /// 返回Emoji字符串 75 | /// 76 | /// 77 | /// 78 | private string GetEmojiStr(string name) 79 | { 80 | return "[" + name + "]"; 81 | } 82 | /// 83 | /// 返回Emoji图像 84 | /// 85 | /// 86 | /// 87 | private BitmapImage GetEmojiImage(string name) 88 | { 89 | BitmapImage bitmap = new BitmapImage(); 90 | string imgUrl = "pack://application:,,,/WeChat.Emoji;component/Image/" + name + ".png"; 91 | bitmap.BeginInit(); 92 | bitmap.UriSource = new Uri(imgUrl, UriKind.RelativeOrAbsolute); 93 | bitmap.EndInit(); 94 | return bitmap; 95 | } 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /WeChat.NET/WeChat.Controls/WeChat.Controls.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {CE6120AC-1E91-4FF1-A290-6D87B215B361} 8 | Library 9 | Properties 10 | WeChat.Controls 11 | WeChat.Controls 12 | v4.0 13 | 512 14 | 15 | 16 | true 17 | full 18 | false 19 | bin\Debug\ 20 | DEBUG;TRACE 21 | prompt 22 | 4 23 | 24 | 25 | pdbonly 26 | true 27 | bin\Release\ 28 | TRACE 29 | prompt 30 | 4 31 | 32 | 33 | true 34 | bin\x86\Debug\ 35 | DEBUG;TRACE 36 | full 37 | x86 38 | prompt 39 | MinimumRecommendedRules.ruleset 40 | 41 | 42 | bin\x86\Release\ 43 | TRACE 44 | true 45 | pdbonly 46 | x86 47 | prompt 48 | MinimumRecommendedRules.ruleset 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | FriendsListBox.xaml 66 | 67 | 68 | 69 | 70 | 71 | Designer 72 | MSBuild:Compile 73 | 74 | 75 | 76 | 83 | -------------------------------------------------------------------------------- /WeChat.NET/WeChat.Tools/WeChat.Tools.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {F2F079E7-FC21-4F84-AE1A-269E8FD47DC3} 8 | Library 9 | Properties 10 | WeChat.Tools 11 | WeChat.Tools 12 | v4.0 13 | 512 14 | 15 | 16 | 17 | true 18 | full 19 | false 20 | bin\Debug\ 21 | DEBUG;TRACE 22 | prompt 23 | 4 24 | false 25 | 26 | 27 | pdbonly 28 | true 29 | bin\Release\ 30 | TRACE 31 | prompt 32 | 4 33 | false 34 | 35 | 36 | true 37 | bin\x86\Debug\ 38 | DEBUG;TRACE 39 | full 40 | x86 41 | prompt 42 | MinimumRecommendedRules.ruleset 43 | false 44 | 45 | 46 | bin\x86\Release\ 47 | TRACE 48 | true 49 | pdbonly 50 | x86 51 | prompt 52 | MinimumRecommendedRules.ruleset 53 | false 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 82 | -------------------------------------------------------------------------------- /WeChat.NET/WeChat.WPF/Modules/Login/View/LoginUC.xaml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |