├── produproperty
├── Assets
│ ├── 100.png
│ ├── 107.png
│ ├── 142.png
│ ├── 150.png
│ ├── 16.png
│ ├── 176.png
│ ├── 188.png
│ ├── 200.png
│ ├── 225.png
│ ├── 24.png
│ ├── 256.png
│ ├── 284.png
│ ├── 300.png
│ ├── 310.png
│ ├── 388.png
│ ├── 44.png
│ ├── 465.png
│ ├── 48.png
│ ├── 50.png
│ ├── 55.png
│ ├── 600.png
│ ├── 620.png
│ ├── 63.png
│ ├── 66.png
│ ├── 71.png
│ ├── 75.png
│ ├── 775.png
│ ├── 88.png
│ ├── 89.png
│ ├── 930.png
│ ├── 写.png
│ ├── 写.psd
│ ├── 1240.png
│ ├── 1240.psd
│ ├── 2480.png
│ ├── 3101.png
│ ├── 3881.png
│ ├── 4652.png
│ ├── 1240-600.png
│ ├── 620-300.png
│ ├── StoreLogo.png
│ ├── StoreLogo.scale-100.png
│ ├── StoreLogo.scale-125.png
│ ├── StoreLogo.scale-150.png
│ ├── StoreLogo.scale-200.png
│ ├── StoreLogo.scale-400.png
│ ├── SplashScreen.scale-100.png
│ ├── SplashScreen.scale-125.png
│ ├── SplashScreen.scale-150.png
│ ├── SplashScreen.scale-200.png
│ ├── SplashScreen.scale-400.png
│ ├── LockScreenLogo.scale-200.png
│ ├── Square44x44Logo.scale-100.png
│ ├── Square44x44Logo.scale-125.png
│ ├── Square44x44Logo.scale-150.png
│ ├── Square44x44Logo.scale-200.png
│ ├── Square44x44Logo.scale-400.png
│ ├── Square71x71Logo.scale-100.png
│ ├── Square71x71Logo.scale-125.png
│ ├── Square71x71Logo.scale-150.png
│ ├── Square71x71Logo.scale-200.png
│ ├── Square71x71Logo.scale-400.png
│ ├── Wide310x150Logo.scale-100.png
│ ├── Wide310x150Logo.scale-125.png
│ ├── Wide310x150Logo.scale-150.png
│ ├── Wide310x150Logo.scale-200.png
│ ├── Wide310x150Logo.scale-400.png
│ ├── Square150x150Logo.scale-100.png
│ ├── Square150x150Logo.scale-125.png
│ ├── Square150x150Logo.scale-150.png
│ ├── Square150x150Logo.scale-200.png
│ ├── Square150x150Logo.scale-400.png
│ ├── Square310x310Logo.scale-100.png
│ ├── Square310x310Logo.scale-125.png
│ ├── Square310x310Logo.scale-150.png
│ ├── Square310x310Logo.scale-200.png
│ ├── Square310x310Logo.scale-400.png
│ ├── Square44x44Logo.targetsize-16.png
│ ├── Square44x44Logo.targetsize-256.png
│ ├── Square44x44Logo.targetsize-48.png
│ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ └── Square44x44Logo.targetsize-256_altform-unplated.png
├── _pkginfo.txt
├── ViewModel
│ ├── AlexzanderModel.cs
│ ├── KaydenSergioModel.cs
│ ├── FileMariyah.cs
│ ├── TrenPhillip.cs
│ ├── CombinationComposite.cs
│ ├── NotifyProperty.cs
│ ├── TrenPhillipKarissaModel.cs
│ ├── NoteGoverment.cs
│ ├── NoteStorage.cs
│ ├── MartinRhfinwittModel.cs
│ └── viewModel.cs
├── ApplicationInsights.config
├── BundleArtifacts
│ ├── arm.txt
│ ├── x64.txt
│ ├── x86.txt
│ └── Upload
│ │ ├── arm.txt
│ │ ├── x64.txt
│ │ └── x86.txt
├── Service References
│ └── HockeyApp
│ │ └── ConnectedService.json
├── View
│ ├── SplashPage.xaml
│ ├── KaydenSergioPage.xaml
│ ├── AlexzanderPage.xaml.cs
│ ├── TrenPhillipKarissaPage.xaml.cs
│ ├── NoteStoragePage.xaml.cs
│ ├── SplashPage.xaml.cs
│ ├── KaydenSergioPage.xaml.cs
│ ├── TrenPhillipKarissaPage.xaml
│ ├── AlexzanderPage.xaml
│ ├── MartinRhfinwittPage.xaml.cs
│ ├── MartinRhfinwittPage.xaml
│ ├── NoteStoragePage.xaml
│ ├── KeyBehavior.cs
│ └── DcBoxaproPage.cs
├── App.xaml
├── project.json
├── note_storage_page.xaml
├── note_storage_page.xaml.cs
├── option.xaml.cs
├── Properties
│ ├── AssemblyInfo.cs
│ └── Default.rd.xml
├── option.xaml
├── produproperty.nuget.targets
├── Tiroll.cs
├── ImpliedFolderStorage.cs
├── MainPage.xaml
├── produproperty.nuget.props
├── Package.appxmanifest
├── NewNoteStorage.cs
├── winmain_page.xaml
├── MainPage.xaml.cs
├── App.xaml.cs
├── winmain_page.xaml.cs
├── Themes
│ └── Generic.xaml
├── produproperty.csproj
└── model.cs
├── 测试
└── cprod测试
│ ├── Assets
│ ├── StoreLogo.png
│ ├── SplashScreen.scale-200.png
│ ├── LockScreenLogo.scale-200.png
│ ├── Square44x44Logo.scale-200.png
│ ├── Wide310x150Logo.scale-200.png
│ ├── Square150x150Logo.scale-200.png
│ └── Square44x44Logo.targetsize-24_altform-unplated.png
│ ├── 1.md
│ ├── UnitTestApp.xaml
│ ├── project.json
│ ├── Tiroll.cs
│ ├── Properties
│ ├── AssemblyInfo.cs
│ └── UnitTestApp.rd.xml
│ ├── cprod测试.nuget.targets
│ ├── winmain.cs
│ ├── Package.appxmanifest
│ ├── cprod测试.nuget.props
│ ├── UnitTestApp.xaml.cs
│ └── cprod测试.csproj
├── README.md
├── .gitattributes
├── produproperty.sln
└── .gitignore
/produproperty/Assets/100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/100.png
--------------------------------------------------------------------------------
/produproperty/Assets/107.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/107.png
--------------------------------------------------------------------------------
/produproperty/Assets/142.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/142.png
--------------------------------------------------------------------------------
/produproperty/Assets/150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/150.png
--------------------------------------------------------------------------------
/produproperty/Assets/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/16.png
--------------------------------------------------------------------------------
/produproperty/Assets/176.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/176.png
--------------------------------------------------------------------------------
/produproperty/Assets/188.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/188.png
--------------------------------------------------------------------------------
/produproperty/Assets/200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/200.png
--------------------------------------------------------------------------------
/produproperty/Assets/225.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/225.png
--------------------------------------------------------------------------------
/produproperty/Assets/24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/24.png
--------------------------------------------------------------------------------
/produproperty/Assets/256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/256.png
--------------------------------------------------------------------------------
/produproperty/Assets/284.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/284.png
--------------------------------------------------------------------------------
/produproperty/Assets/300.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/300.png
--------------------------------------------------------------------------------
/produproperty/Assets/310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/310.png
--------------------------------------------------------------------------------
/produproperty/Assets/388.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/388.png
--------------------------------------------------------------------------------
/produproperty/Assets/44.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/44.png
--------------------------------------------------------------------------------
/produproperty/Assets/465.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/465.png
--------------------------------------------------------------------------------
/produproperty/Assets/48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/48.png
--------------------------------------------------------------------------------
/produproperty/Assets/50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/50.png
--------------------------------------------------------------------------------
/produproperty/Assets/55.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/55.png
--------------------------------------------------------------------------------
/produproperty/Assets/600.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/600.png
--------------------------------------------------------------------------------
/produproperty/Assets/620.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/620.png
--------------------------------------------------------------------------------
/produproperty/Assets/63.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/63.png
--------------------------------------------------------------------------------
/produproperty/Assets/66.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/66.png
--------------------------------------------------------------------------------
/produproperty/Assets/71.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/71.png
--------------------------------------------------------------------------------
/produproperty/Assets/75.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/75.png
--------------------------------------------------------------------------------
/produproperty/Assets/775.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/775.png
--------------------------------------------------------------------------------
/produproperty/Assets/88.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/88.png
--------------------------------------------------------------------------------
/produproperty/Assets/89.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/89.png
--------------------------------------------------------------------------------
/produproperty/Assets/930.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/930.png
--------------------------------------------------------------------------------
/produproperty/Assets/写.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/写.png
--------------------------------------------------------------------------------
/produproperty/Assets/写.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/写.psd
--------------------------------------------------------------------------------
/produproperty/Assets/1240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/1240.png
--------------------------------------------------------------------------------
/produproperty/Assets/1240.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/1240.psd
--------------------------------------------------------------------------------
/produproperty/Assets/2480.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/2480.png
--------------------------------------------------------------------------------
/produproperty/Assets/3101.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/3101.png
--------------------------------------------------------------------------------
/produproperty/Assets/3881.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/3881.png
--------------------------------------------------------------------------------
/produproperty/Assets/4652.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/4652.png
--------------------------------------------------------------------------------
/produproperty/_pkginfo.txt:
--------------------------------------------------------------------------------
1 | Y:\AppPackages\produproperty_1.1.0.0\produproperty_1.1.0.0_x86_x64_arm.appxbundle
2 |
--------------------------------------------------------------------------------
/produproperty/Assets/1240-600.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/1240-600.png
--------------------------------------------------------------------------------
/produproperty/Assets/620-300.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/620-300.png
--------------------------------------------------------------------------------
/测试/cprod测试/Assets/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/测试/cprod测试/Assets/StoreLogo.png
--------------------------------------------------------------------------------
/produproperty/Assets/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/StoreLogo.png
--------------------------------------------------------------------------------
/produproperty/ViewModel/AlexzanderModel.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/ViewModel/AlexzanderModel.cs
--------------------------------------------------------------------------------
/produproperty/Assets/StoreLogo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/StoreLogo.scale-100.png
--------------------------------------------------------------------------------
/produproperty/Assets/StoreLogo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/StoreLogo.scale-125.png
--------------------------------------------------------------------------------
/produproperty/Assets/StoreLogo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/StoreLogo.scale-150.png
--------------------------------------------------------------------------------
/produproperty/Assets/StoreLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/StoreLogo.scale-200.png
--------------------------------------------------------------------------------
/produproperty/Assets/StoreLogo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/StoreLogo.scale-400.png
--------------------------------------------------------------------------------
/produproperty/ViewModel/KaydenSergioModel.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/ViewModel/KaydenSergioModel.cs
--------------------------------------------------------------------------------
/测试/cprod测试/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/测试/cprod测试/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/produproperty/Assets/SplashScreen.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/SplashScreen.scale-100.png
--------------------------------------------------------------------------------
/produproperty/Assets/SplashScreen.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/SplashScreen.scale-125.png
--------------------------------------------------------------------------------
/produproperty/Assets/SplashScreen.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/SplashScreen.scale-150.png
--------------------------------------------------------------------------------
/produproperty/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/produproperty/Assets/SplashScreen.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/SplashScreen.scale-400.png
--------------------------------------------------------------------------------
/测试/cprod测试/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/测试/cprod测试/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/测试/cprod测试/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/测试/cprod测试/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/测试/cprod测试/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/测试/cprod测试/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/produproperty/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square44x44Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square44x44Logo.scale-100.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square44x44Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square44x44Logo.scale-125.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square44x44Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square44x44Logo.scale-150.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square44x44Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square44x44Logo.scale-400.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square71x71Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square71x71Logo.scale-100.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square71x71Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square71x71Logo.scale-125.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square71x71Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square71x71Logo.scale-150.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square71x71Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square71x71Logo.scale-200.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square71x71Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square71x71Logo.scale-400.png
--------------------------------------------------------------------------------
/produproperty/Assets/Wide310x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Wide310x150Logo.scale-100.png
--------------------------------------------------------------------------------
/produproperty/Assets/Wide310x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Wide310x150Logo.scale-125.png
--------------------------------------------------------------------------------
/produproperty/Assets/Wide310x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Wide310x150Logo.scale-150.png
--------------------------------------------------------------------------------
/produproperty/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/produproperty/Assets/Wide310x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Wide310x150Logo.scale-400.png
--------------------------------------------------------------------------------
/测试/cprod测试/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/测试/cprod测试/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square150x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square150x150Logo.scale-100.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square150x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square150x150Logo.scale-125.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square150x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square150x150Logo.scale-150.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square150x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square150x150Logo.scale-400.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square310x310Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square310x310Logo.scale-100.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square310x310Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square310x310Logo.scale-125.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square310x310Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square310x310Logo.scale-150.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square310x310Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square310x310Logo.scale-200.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square310x310Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square310x310Logo.scale-400.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square44x44Logo.targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square44x44Logo.targetsize-16.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square44x44Logo.targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square44x44Logo.targetsize-256.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square44x44Logo.targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square44x44Logo.targetsize-48.png
--------------------------------------------------------------------------------
/测试/cprod测试/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/测试/cprod测试/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/produproperty/Assets/Square44x44Logo.targetsize-256_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lindexi/Markdown/HEAD/produproperty/Assets/Square44x44Logo.targetsize-256_altform-unplated.png
--------------------------------------------------------------------------------
/produproperty/ApplicationInsights.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/produproperty/BundleArtifacts/arm.txt:
--------------------------------------------------------------------------------
1 | MainPackage=E:\倾世倩雪\程序\produproperty\produproperty\bin\ARM\Release\produproperty_1.1.0.0_ARM.appx
2 | SymbolPackage=Y:\AppPackages\produproperty_1.1.0.0_Test\produproperty_1.1.0.0_ARM.appxsym
3 |
--------------------------------------------------------------------------------
/produproperty/BundleArtifacts/x64.txt:
--------------------------------------------------------------------------------
1 | MainPackage=E:\倾世倩雪\程序\produproperty\produproperty\bin\x64\Release\produproperty_1.1.0.0_x64.appx
2 | SymbolPackage=Y:\AppPackages\produproperty_1.1.0.0_Test\produproperty_1.1.0.0_x64.appxsym
3 |
--------------------------------------------------------------------------------
/produproperty/BundleArtifacts/x86.txt:
--------------------------------------------------------------------------------
1 | MainPackage=E:\倾世倩雪\程序\produproperty\produproperty\bin\x86\Release\produproperty_1.1.0.0_x86.appx
2 | SymbolPackage=Y:\AppPackages\produproperty_1.1.0.0_Test\produproperty_1.1.0.0_x86.appxsym
3 |
--------------------------------------------------------------------------------
/produproperty/BundleArtifacts/Upload/arm.txt:
--------------------------------------------------------------------------------
1 | MainPackage=E:\倾世倩雪\程序\produproperty\produproperty\bin\ARM\Release\Upload\produproperty_1.1.0.0_ARM.appx
2 | SymbolPackage=Y:\AppPackages\produproperty_1.1.0.0\produproperty_1.1.0.0_ARM.appxsym
3 |
--------------------------------------------------------------------------------
/produproperty/BundleArtifacts/Upload/x64.txt:
--------------------------------------------------------------------------------
1 | MainPackage=E:\倾世倩雪\程序\produproperty\produproperty\bin\x64\Release\Upload\produproperty_1.1.0.0_x64.appx
2 | SymbolPackage=Y:\AppPackages\produproperty_1.1.0.0\produproperty_1.1.0.0_x64.appxsym
3 |
--------------------------------------------------------------------------------
/produproperty/BundleArtifacts/Upload/x86.txt:
--------------------------------------------------------------------------------
1 | MainPackage=E:\倾世倩雪\程序\produproperty\produproperty\bin\x86\Release\Upload\produproperty_1.1.0.0_x86.appx
2 | SymbolPackage=Y:\AppPackages\produproperty_1.1.0.0\produproperty_1.1.0.0_x86.appxsym
3 |
--------------------------------------------------------------------------------
/produproperty/Service References/HockeyApp/ConnectedService.json:
--------------------------------------------------------------------------------
1 | {
2 | "ProviderId": "Microsoft.ApplicationInsights.HockeyApp.WizardProvider",
3 | "Version": "7.7.10922.3",
4 | "GettingStartedDocument": {
5 | "Uri": "https://go.microsoft.com/fwlink/?LinkID=799739"
6 | }
7 | }
--------------------------------------------------------------------------------
/测试/cprod测试/1.md:
--------------------------------------------------------------------------------
1 | # Markdown
2 |
3 | ## 可以拖放图片自动保存图片到用户位置,生成 ``
4 |
5 | ### 可以粘贴图片,自动保存图片到用户位置,生成 ``
6 |
7 | #### 拖入文件,自动保存文件到到用户位置,生成 `[file.name](image/file.png)`
8 |
9 | ## 保存字体大小
10 |
11 | ## 保存name在text,读取删除name
12 |
13 | ## 换行\n\n text最后加文件
--------------------------------------------------------------------------------
/测试/cprod测试/UnitTestApp.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/测试/cprod测试/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.3.2",
4 | "MSTest.TestAdapter": "1.1.14",
5 | "MSTest.TestFramework": "1.1.11"
6 | },
7 | "frameworks": {
8 | "uap10.0": {}
9 | },
10 | "runtimes": {
11 | "win10-arm": {},
12 | "win10-arm-aot": {},
13 | "win10-x86": {},
14 | "win10-x86-aot": {},
15 | "win10-x64": {},
16 | "win10-x64-aot": {}
17 | }
18 | }
--------------------------------------------------------------------------------
/produproperty/ViewModel/FileMariyah.cs:
--------------------------------------------------------------------------------
1 | using Windows.Storage;
2 |
3 | namespace produproperty.ViewModel
4 | {
5 | public class FileMariyah
6 | {
7 | public FileMariyah()
8 | {
9 | }
10 |
11 | public FileMariyah(StorageFile file)
12 | {
13 | File = file;
14 | }
15 |
16 | public string Name
17 | {
18 | get { return File.Name; }
19 | }
20 |
21 | public StorageFile File
22 | {
23 | get; set;
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/produproperty/View/SplashPage.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/produproperty/App.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/测试/cprod测试/Tiroll.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Threading.Tasks;
4 | using Windows.Storage;
5 | using Microsoft.VisualStudio.TestTools.UnitTesting;
6 |
7 |
8 | namespace cprod测试
9 | {
10 | [TestClass]
11 | public class Tiroll
12 | {
13 | [TestMethod]
14 | public async Task Guidanceroll()
15 | {
16 | var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///1.md"));
17 | Debug.Write(await FileIO.ReadTextAsync(file));
18 | var t = new produproperty.Tiroll();
19 | //t.Guidanceroll(await FileIO.ReadTextAsync(file));
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/produproperty/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "JyAnalytics": "1.0.10",
4 | "JyUserInfoSdk": "1.1.5",
5 | "Microsoft.ApplicationInsights": "2.3.0",
6 | "Microsoft.ApplicationInsights.PersistenceChannel": "1.2.3",
7 | "Microsoft.ApplicationInsights.WindowsApps": "1.1.1",
8 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.3.0",
9 | "Microsoft.Toolkit.Uwp.UI.Controls": "1.4.0",
10 | "Newtonsoft.Json": "10.0.2"
11 | },
12 | "frameworks": {
13 | "uap10.0": {}
14 | },
15 | "runtimes": {
16 | "win10-arm": {},
17 | "win10-arm-aot": {},
18 | "win10-x86": {},
19 | "win10-x86-aot": {},
20 | "win10-x64": {},
21 | "win10-x64-aot": {}
22 | }
23 | }
--------------------------------------------------------------------------------
/测试/cprod测试/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("cprod测试")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("cprod测试")]
10 | [assembly: AssemblyCopyright("Copyright © 2017")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 | [assembly: AssemblyMetadata("TargetPlatform","UAP")]
14 |
15 | // [assembly: AssemblyVersion("1.0.*")]
16 | [assembly: AssemblyVersion("1.0.0.0")]
17 | [assembly: AssemblyFileVersion("1.0.0.0")]
18 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/produproperty/note_storage_page.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/produproperty/View/KaydenSergioPage.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/produproperty/note_storage_page.xaml.cs:
--------------------------------------------------------------------------------
1 | // lindexi
2 | // 20:47
3 |
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using Windows.Storage;
10 | using Windows.UI.Xaml;
11 | using Windows.UI.Xaml.Controls;
12 | using produproperty.ViewModel;
13 |
14 | namespace produproperty
15 | {
16 | public partial class NoteStoragePage : Page
17 | {
18 | ///
19 | /// 程序打开第一界面
20 | ///
21 | public NoteStoragePage()
22 | {
23 | View = new NoteStorage();
24 | InitializeComponent();
25 | View.NavigateFolder = navigate_folder;
26 | }
27 |
28 | private NoteStorage View
29 | {
30 | set;
31 | get;
32 | }
33 |
34 | private void navigate_folder(StorageFolder folder)
35 | {
36 | Frame rootFrame = Window.Current.Content as Frame;
37 | rootFrame?.Navigate(typeof(WinmainPage), folder);
38 | }
39 | }
40 | }
--------------------------------------------------------------------------------
/produproperty/option.xaml.cs:
--------------------------------------------------------------------------------
1 | // lindexi
2 | // 20:47
3 |
4 | using produproperty.ViewModel;
5 | using System;
6 | using System.Collections.Generic;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using Windows.UI.Xaml;
11 | using Windows.UI.Xaml.Controls;
12 | using Windows.UI.Xaml.Navigation;
13 |
14 | namespace produproperty
15 | {
16 | public partial class option
17 | {
18 | public option()
19 | {
20 | InitializeComponent();
21 | }
22 |
23 | //protected override void OnNavigatedTo(NavigationEventArgs e)
24 | //{
25 | // view = e.Parameter as viewModel ?? new viewModel();
26 | //}
27 |
28 | //private viewModel view;
29 |
30 | //private void mainpage(object sender, RoutedEventArgs e)
31 | //{
32 | // Frame frame = Window.Current.Content as Frame;
33 | // frame.Navigate(typeof(MainPage), view);
34 | //}
35 |
36 | //private void Button_Click(object sender, RoutedEventArgs e)
37 | //{
38 | // view.Accessfolder();
39 | //}
40 | }
41 | }
--------------------------------------------------------------------------------
/produproperty/View/AlexzanderPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.Foundation;
7 | using Windows.Foundation.Collections;
8 | using Windows.UI.Xaml;
9 | using Windows.UI.Xaml.Controls;
10 | using Windows.UI.Xaml.Controls.Primitives;
11 | using Windows.UI.Xaml.Data;
12 | using Windows.UI.Xaml.Input;
13 | using Windows.UI.Xaml.Media;
14 | using Windows.UI.Xaml.Navigation;
15 | using lindexi.uwp.Framework.ViewModel;
16 | using produproperty.ViewModel;
17 |
18 | // https://go.microsoft.com/fwlink/?LinkId=234238 上介绍了“空白页”项模板
19 |
20 | namespace produproperty.View
21 | {
22 | ///
23 | /// 可用于自身或导航至 Frame 内部的空白页。
24 | ///
25 | [ViewModel(ViewModel = typeof(AlexzanderModel))]
26 | public sealed partial class AlexzanderPage : Page
27 | {
28 | public AlexzanderPage()
29 | {
30 | this.InitializeComponent();
31 | //ViewModel = (AlexzanderModel) DataContext;
32 | }
33 |
34 | public AlexzanderModel ViewModel { get; set; } = new AlexzanderModel();
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/produproperty/View/TrenPhillipKarissaPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.Foundation;
7 | using Windows.Foundation.Collections;
8 | using Windows.UI.Xaml;
9 | using Windows.UI.Xaml.Controls;
10 | using Windows.UI.Xaml.Controls.Primitives;
11 | using Windows.UI.Xaml.Data;
12 | using Windows.UI.Xaml.Input;
13 | using Windows.UI.Xaml.Media;
14 | using Windows.UI.Xaml.Navigation;
15 | using lindexi.uwp.Framework.ViewModel;
16 | using produproperty.ViewModel;
17 |
18 | // https://go.microsoft.com/fwlink/?LinkId=234238 上介绍了“空白页”项模板
19 |
20 | namespace produproperty.View
21 | {
22 | ///
23 | /// 可用于自身或导航至 Frame 内部的空白页。
24 | ///
25 | [ViewModel(ViewModel = typeof(TrenPhillipKarissaModel))]
26 | public sealed partial class TrenPhillipKarissaPage : Page
27 | {
28 | public TrenPhillipKarissaPage()
29 | {
30 | this.InitializeComponent();
31 | ViewModel = (TrenPhillipKarissaModel) DataContext;
32 | }
33 |
34 | public TrenPhillipKarissaModel ViewModel { get; set; }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/produproperty/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // lindexi
2 | // 20:47
3 |
4 | using System.Reflection;
5 | using System.Runtime.CompilerServices;
6 | using System.Runtime.InteropServices;
7 |
8 | // General Information about an assembly is controlled through the following
9 | // set of attributes. Change these attribute values to modify the information
10 | // associated with an assembly.
11 |
12 | [assembly: AssemblyTitle("winMarkdown")]
13 | [assembly: AssemblyDescription("")]
14 | [assembly: AssemblyConfiguration("")]
15 | [assembly: AssemblyCompany("")]
16 | [assembly: AssemblyProduct("produproperty")]
17 | [assembly: AssemblyCopyright("Copyright © 2016")]
18 | [assembly: AssemblyTrademark("")]
19 | [assembly: AssemblyCulture("")]
20 |
21 | // Version information for an assembly consists of the following four values:
22 | //
23 | // Major Version
24 | // Minor Version
25 | // Build Number
26 | // Revision
27 | //
28 | // You can specify all the values or you can default the Build and Revision Numbers
29 | // by using the '*' as shown below:
30 | // [assembly: AssemblyVersion("1.0.*")]
31 |
32 | [assembly: AssemblyVersion("1.0.0.0")]
33 | [assembly: AssemblyFileVersion("1.0.0.0")]
34 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/produproperty/View/NoteStoragePage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.Foundation;
7 | using Windows.Foundation.Collections;
8 | using Windows.UI.Xaml;
9 | using Windows.UI.Xaml.Controls;
10 | using Windows.UI.Xaml.Controls.Primitives;
11 | using Windows.UI.Xaml.Data;
12 | using Windows.UI.Xaml.Input;
13 | using Windows.UI.Xaml.Media;
14 | using Windows.UI.Xaml.Navigation;
15 | using lindexi.uwp.Framework.ViewModel;
16 | using produproperty.ViewModel;
17 |
18 | // “空白页”项模板在 http://go.microsoft.com/fwlink/?LinkId=234238 上有介绍
19 |
20 | namespace produproperty.View
21 | {
22 | ///
23 | /// 可用于自身或导航至 Frame 内部的空白页。
24 | ///
25 | [ViewModel(ViewModel = typeof(NoteStorageModel))]
26 | public sealed partial class NoteStoragePage : Page
27 | {
28 | public NoteStoragePage()
29 | {
30 | this.InitializeComponent();
31 | //ViewModel = (NoteStorageModel) DataContext;
32 | }
33 |
34 | public NoteStorageModel ViewModel
35 | {
36 | get; set;
37 | } = new NoteStorageModel();
38 |
39 |
40 |
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/测试/cprod测试/Properties/UnitTestApp.rd.xml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/produproperty/View/SplashPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using System.Threading.Tasks;
7 | using Windows.Foundation;
8 | using Windows.Foundation.Collections;
9 | using Windows.UI.Xaml;
10 | using Windows.UI.Xaml.Controls;
11 | using Windows.UI.Xaml.Controls.Primitives;
12 | using Windows.UI.Xaml.Data;
13 | using Windows.UI.Xaml.Input;
14 | using Windows.UI.Xaml.Media;
15 | using Windows.UI.Xaml.Navigation;
16 | using lindexi.uwp.Framework.ViewModel;
17 |
18 | // https://go.microsoft.com/fwlink/?LinkId=234238 上介绍了“空白页”项模板
19 |
20 | namespace produproperty.View
21 | {
22 | ///
23 | /// 可用于自身或导航至 Frame 内部的空白页。
24 | ///
25 | public sealed partial class SplashPage : Page
26 | {
27 | public SplashPage()
28 | {
29 | this.InitializeComponent();
30 | Read();
31 | }
32 |
33 | private async void Read()
34 | {
35 | await Task.Delay(100);
36 | //await AccountGoverment.Read();
37 | //((ViewModel.ViewModel) App.Current.Resources["ViewModel"]).Read();
38 | var frame = (Windows.UI.Xaml.Controls.Frame) Window.Current.Content;
39 | frame.Navigate(typeof(MainPage));
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/produproperty/Properties/Default.rd.xml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/produproperty/option.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/produproperty/ViewModel/TrenPhillip.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace produproperty.ViewModel
4 | {
5 | public class TrenPhillip : NotifyProperty
6 | {
7 |
8 | private string _corey;
9 |
10 | private bool _nevaeh;
11 |
12 | public TrenPhillip()
13 | {
14 |
15 | }
16 |
17 | public TrenPhillip(FileMariyah file)
18 | {
19 | File = file;
20 | Corey = file.Name;
21 | }
22 |
23 | public FileMariyah File
24 | {
25 | get; set;
26 | }
27 |
28 | ///
29 | /// 标题
30 | ///
31 | public string Corey
32 | {
33 | get
34 | {
35 | return _corey;
36 | }
37 | set
38 | {
39 | _corey = value;
40 | OnPropertyChanged();
41 | }
42 | }
43 |
44 | public bool Nevaeh
45 | {
46 | get
47 | {
48 | return _nevaeh;
49 | }
50 | set
51 | {
52 | _nevaeh = value;
53 | OnPropertyChanged();
54 | }
55 | }
56 |
57 | public EventHandler Sukarissa
58 | { get; set; }
59 |
60 | public void OnSukarissa()
61 | {
62 | Sukarissa?.Invoke(this,null);
63 | }
64 | }
65 | }
--------------------------------------------------------------------------------
/produproperty/View/KaydenSergioPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.Foundation;
7 | using Windows.Foundation.Collections;
8 | using Windows.UI.Xaml;
9 | using Windows.UI.Xaml.Controls;
10 | using Windows.UI.Xaml.Controls.Primitives;
11 | using Windows.UI.Xaml.Data;
12 | using Windows.UI.Xaml.Input;
13 | using Windows.UI.Xaml.Media;
14 | using Windows.UI.Xaml.Navigation;
15 | using lindexi.uwp.Framework.ViewModel;
16 | using produproperty.ViewModel;
17 |
18 | // https://go.microsoft.com/fwlink/?LinkId=234238 上介绍了“空白页”项模板
19 |
20 | namespace produproperty.View
21 | {
22 | ///
23 | /// 可用于自身或导航至 Frame 内部的空白页。
24 | ///
25 | [ViewModel(ViewModel = typeof(KaydenSergioModel))]
26 | public sealed partial class KaydenSergioPage : Page
27 | {
28 | public KaydenSergioPage()
29 | {
30 | this.InitializeComponent();
31 | ViewModel = (KaydenSergioModel) DataContext;
32 | }
33 |
34 | public KaydenSergioModel ViewModel { get; set; }
35 |
36 | protected override void OnNavigatedTo(NavigationEventArgs e)
37 | {
38 | ViewModel = (KaydenSergioModel) e.Parameter;
39 | DataContext = e.Parameter;
40 |
41 | base.OnNavigatedTo(e);
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/produproperty/produproperty.nuget.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Markdown
2 |
3 | ## 可以拖放图片自动保存图片到用户位置,生成 ``
4 |
5 | ## 可以粘贴图片,自动保存图片到用户位置,生成 ``
6 |
7 | ## 拖入文件,自动保存文件到到用户位置,生成 `[file.name](image/file.png)`
8 |
9 | ## 保存字体大小
10 |
11 | ## 快捷键
12 |
13 |
14 | ### 可以输入标题
15 |
16 | 可以输入多级标题,包括一级标题,二级标题,以及其他标题。
17 |
18 | 输入标题方式可以使用快捷键,也可以手动输入“#”,一个“#” 表示一级标题,两个个“#” 表示二级标题,三个“#” 表示三级标题,其他表示多级标题。
19 |
20 | 输入快捷键要求判断,当前输入点之前是否存在文字,如果存在,那么输入两个回车后输入“#”,如果输入点之前是“#”,那么继续输入“#”,如果输入点之前是回车,那么输入“#”。
21 |
22 | ### 可以输入加粗
23 |
24 | 可以使用快捷键或直接输入“`**重点内容**`”加粗。
25 |
26 | 其中“`**重点内容**`”的内容是加粗,如果输入快捷键,那么判断是否有选择字符,如果存在选中字符,那么直接把“`**重点内容**`”中的 “重点内容”代换为选中的字符。如果不存在选中字符,那么输入“`****`”,把光标移动到中间。
27 |
28 | ### 可以输入斜体
29 |
30 | 可以使用快捷键或直接输入“`*重点内容*`”,其中“重点内容”是斜体。
31 |
32 | 如果输入快捷键,那么判断是否有选择字符,如果存在选中字符,那么直接把“`*重点内容*`”中的 “重点内容”代换为选中的字符。如果不存在选中字符,那么输入“`**`”,把光标移动到中间。
33 |
34 | ### 粘贴图片
35 |
36 | 如果用户粘贴的是图片,软件可以识别多种图片,如果用户有选择图片需要水印,那么处理图片。
37 |
38 | 图片如果过大,软件可以压缩图片。
39 |
40 | 软件自动把图片上传到云,用户可自己选择多个云。包括 九幽、七牛云,sm.ms,ituku.tk,建立云。
41 |
42 | 用户可以使用自己的云。
43 |
44 | 软件后台上传云,用户插入图片时,先把图片放到资源文件夹,然后上传。保存到资源文件夹的图片名为时间+随机数。
45 |
46 | 插入时,输入“``”,上传完成,自动把输入代换“``”。
47 |
48 | 文章可以通过直接粘贴图片,插入。
49 |
50 | 插入的图片先放到本地,如果粘贴的内容是文件,那么直接复制文件到文章同目录的文件夹,文章的文件夹名称和文章一样。复制进去需要修改文件名称为源文件名称+日期+随机数。如果粘贴的内容是图片,那么把图片转换为文件,同样放到文件夹,文件名为日期+随机数。
51 |
52 | 在文本,插入图片格式为`< !--图片-->`,一开始的URL是图片的本地路径位置,然后注释的`图片`是`ID`,其中ID是随机生成,作用在上传图片完成代换。输入后台上传代码为`(本地文件)< !--图片-->`和图片文件。根据图片文件上传完成,代换`(URL)< !--本地文件-->`。如果URL不可用,可以重新上传。重新上传的代码是`(URL)< !--本地文件-->`,根据本地文件获取文件,然后上传,代换URL。
--------------------------------------------------------------------------------
/produproperty/ViewModel/CombinationComposite.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using lindexi.uwp.Framework.ViewModel;
3 |
4 | namespace produproperty.ViewModel
5 | {
6 | //public class CombinationComposite : Composite, IMessage
7 | //{
8 | // protected Action _run;
9 |
10 | // public CombinationComposite(ViewModelBase source)
11 | // {
12 | // ((IMessage)this).Source = source;
13 | // }
14 |
15 | // public CombinationComposite(Action run, ViewModelBase source)
16 | // {
17 | // _run = run;
18 | // ((IMessage)this).Source = source;
19 | // }
20 |
21 | // ViewModelBase IMessage.Source
22 | // {
23 | // get;
24 | // set;
25 | // }
26 |
27 | // IPredicateViewModel IMessage.Goal
28 | // {
29 | // get { throw new NotImplementedException(); }
30 | // set { throw new NotImplementedException(); }
31 | // }
32 |
33 | // public bool Predicate(ViewModelPage viewModel)
34 | // {
35 | // throw new NotImplementedException();
36 | // }
37 |
38 | // public ViewModelMessage Aim
39 | // {
40 | // get; set;
41 | // }
42 |
43 |
44 |
45 | // public override void Run(ViewModelBase source, IMessage message)
46 | // {
47 | // _run.Invoke(source, message);
48 | // }
49 |
50 | // public string Goal
51 | // {
52 | // set;
53 | // get;
54 | // }
55 | //}
56 | }
--------------------------------------------------------------------------------
/produproperty/Tiroll.cs:
--------------------------------------------------------------------------------
1 | using System.Diagnostics;
2 | using System.Linq;
3 | using System.Text;
4 |
5 | namespace produproperty
6 | {
7 | public class Tiroll
8 | {
9 | //生成标题目录
10 |
11 | ///
12 | /// 生成标题目录
13 | ///
14 | ///
15 | public static void Guidanceroll(string str)
16 | {
17 | StringBuilder sivera = new StringBuilder();
18 | foreach (var temp in str.Split('\n').Select(temp => temp.Replace("\r", "")))
19 | {
20 | sivera.Append(Guidanoll(temp));
21 | }
22 | }
23 |
24 | private static string Guidanoll(string temp)
25 | {
26 | int n = 0;
27 |
28 | for (int i = 0; i < temp.Length; i++)
29 | {
30 | if (temp[i] == '#')
31 | {
32 | n++;
33 | }
34 | else
35 | {
36 | break;
37 | }
38 | }
39 | if (n > 0)
40 | {
41 | string str = temp.Replace("#", "").Trim();
42 | str = "[" + str + "]" + "(#" + str + ")";
43 | str = "- " + str;
44 | for (int i = 0; i < n; i++)
45 | {
46 | str = " " + str;
47 | }
48 | str = str + "\r\n\r\n";
49 | return str;
50 | }
51 | else
52 | {
53 | return "";
54 | }
55 | }
56 | }
57 | }
--------------------------------------------------------------------------------
/produproperty/View/TrenPhillipKarissaPage.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/测试/cprod测试/cprod测试.nuget.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/测试/cprod测试/winmain.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | //using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;
7 | using Microsoft.VisualStudio.TestTools.UnitTesting;
8 |
9 | namespace cprod测试
10 | {
11 | [TestClass]
12 | public class winmain
13 | {
14 | [TestMethod]
15 | public void clipboard_substitution()
16 | {
17 | var view = new produproperty.ViewModel.winmain(null);
18 | string text = "要替换文本";
19 | //把替换两个字替换为string
20 | view.text = text;
21 | view.select = 1;
22 | view.select_length = 2;
23 | //view.clipboard_substitution("string");
24 |
25 | Assert.AreEqual("要string文本", view.text);
26 |
27 | view.text = text;
28 | view.select = 1;
29 | view.select_length = 5;
30 | //view.clipboard_substitution("string");
31 | Assert.AreEqual("要string", view.text);
32 | }
33 |
34 | [TestMethod]
35 | public void text_line()
36 | {
37 | //var view = new produproperty.ViewModel.winmain(null);
38 | //string text = "#readme";
39 | //Assert.AreEqual(text, view.text_line(text, 0));
40 | //string str = text;
41 | //text += "\nline";
42 | //Assert.AreEqual(str, view.text_line(text, 2));
43 | //str = "line";
44 | //int i;
45 | //i = text.IndexOf('\n') + 1;
46 | //Assert.AreEqual(str, view.text_line(text, i));
47 | //Assert.AreEqual("", view.text_line(text, 100));
48 |
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/produproperty/ViewModel/NotifyProperty.cs:
--------------------------------------------------------------------------------
1 | // lindexi
2 | // 20:47
3 |
4 | using System.ComponentModel;
5 | using System.Runtime.CompilerServices;
6 | using System.Text;
7 |
8 | namespace produproperty.ViewModel
9 | {
10 | ///
11 | /// 提供继承通知UI改变值
12 | ///
13 | public class NotifyProperty : INotifyPropertyChanged
14 | {
15 | public NotifyProperty()
16 | {
17 | _reminder = new StringBuilder();
18 | }
19 |
20 | ///
21 | /// 一直添加value
22 | ///
23 | public string Reminder
24 | {
25 | set
26 | {
27 | _reminder.Clear();
28 | _reminder.Append(value);
29 | OnPropertyChanged();
30 | }
31 | get
32 | {
33 | return _reminder.ToString();
34 | }
35 | }
36 |
37 | public void UpdateProper(ref T properValue, T newValue, [CallerMemberName] string properName = "")
38 | {
39 | if (Equals(properValue, newValue))
40 | {
41 | return;
42 | }
43 |
44 | properValue = newValue;
45 | if (properName != null)
46 | {
47 | OnPropertyChanged(properName);
48 | }
49 | }
50 |
51 |
52 | public void OnPropertyChanged([CallerMemberName] string name = "")
53 | {
54 | var handler = PropertyChanged;
55 | handler?.Invoke(this, new PropertyChangedEventArgs(name));
56 | }
57 |
58 | private readonly StringBuilder _reminder;
59 |
60 | public event PropertyChangedEventHandler PropertyChanged;
61 | }
62 | }
--------------------------------------------------------------------------------
/produproperty/View/AlexzanderPage.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/测试/cprod测试/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
12 |
13 |
14 |
15 | cprod测试
16 | linde
17 | Assets\StoreLogo.png
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
31 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/produproperty/ImpliedFolderStorage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Windows.Storage;
3 | using Windows.UI.Xaml.Media.Imaging;
4 | using Newtonsoft.Json;
5 |
6 | namespace produproperty
7 | {
8 | public class ImpliedFolderStorage : ViewModel.NotifyProperty,IEquatable
9 | {
10 | public ImpliedFolderStorage(StorageFolder folderStorage)
11 | {
12 | FolderStorage = folderStorage;
13 | Name = folderStorage.Name;
14 | }
15 |
16 | public string Name
17 | {
18 | set;
19 | get;
20 | }
21 | [JsonIgnore]
22 | public StorageFolder FolderStorage
23 | {
24 | set;
25 | get;
26 | }
27 | [JsonIgnore]
28 | public BitmapImage Image
29 | {
30 | set
31 | {
32 | _image = value;
33 | OnPropertyChanged();
34 | }
35 | get
36 | {
37 | return _image;
38 | }
39 | }
40 |
41 | private BitmapImage _image;
42 | public string Token
43 | {
44 | set;
45 | get;
46 | }
47 |
48 | public bool Equals(ImpliedFolderStorage other)
49 | {
50 | if (ReferenceEquals(null, other)) return false;
51 | if (ReferenceEquals(this, other)) return true;
52 | return Equals(FolderStorage, other.FolderStorage);
53 | }
54 |
55 | public override bool Equals(object obj)
56 | {
57 | if (ReferenceEquals(null, obj)) return false;
58 | if (ReferenceEquals(this, obj)) return true;
59 | if (obj.GetType() != this.GetType()) return false;
60 | return Equals((ImpliedFolderStorage) obj);
61 | }
62 |
63 | public override int GetHashCode()
64 | {
65 | return FolderStorage?.GetHashCode() ?? 0;
66 | }
67 | }
68 | }
--------------------------------------------------------------------------------
/produproperty/View/MartinRhfinwittPage.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.Foundation;
7 | using Windows.Foundation.Collections;
8 | using Windows.UI.Xaml;
9 | using Windows.UI.Xaml.Controls;
10 | using Windows.UI.Xaml.Controls.Primitives;
11 | using Windows.UI.Xaml.Data;
12 | using Windows.UI.Xaml.Input;
13 | using Windows.UI.Xaml.Media;
14 | using Windows.UI.Xaml.Navigation;
15 | using lindexi.uwp.Framework.ViewModel;
16 | using produproperty.ViewModel;
17 |
18 | // https://go.microsoft.com/fwlink/?LinkId=234238 上介绍了“空白页”项模板
19 |
20 | namespace produproperty.View
21 | {
22 | ///
23 | /// 可用于自身或导航至 Frame 内部的空白页。
24 | ///
25 | [ViewModel(ViewModel = typeof(MartinRhfinwittModel))]
26 | public sealed partial class MartinRhfinwittPage : Page
27 | {
28 | public MartinRhfinwittPage()
29 | {
30 | this.InitializeComponent();
31 | ViewModel = (MartinRhfinwittModel) DataContext;
32 | ViewModel.AlexzanderfFrame = AlexzanderPage;
33 | ViewModel.KaydenSergioFrame = KaydenSergioPage;
34 | ViewModel.TrenPhillipKarissaFrame = TrenPhillipKarissaPage;
35 | ViewModel.Read();
36 | }
37 |
38 | public MartinRhfinwittModel ViewModel { get; set; }
39 | }
40 |
41 | class BooleanVisibilityConvert:IValueConverter
42 | {
43 | public object Convert(object value, Type targetType, object parameter, string language)
44 | {
45 | if (value as bool? == true)
46 | {
47 | return Visibility.Visible;
48 | }
49 | return Visibility.Collapsed;
50 | }
51 |
52 | public object ConvertBack(object value, Type targetType, object parameter, string language)
53 | {
54 | return null;
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/produproperty/View/MartinRhfinwittPage.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/produproperty/MainPage.xaml:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/produproperty/produproperty.nuget.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | True
5 | NuGet
6 | C:\程序\produproperty\produproperty\project.lock.json
7 | $(UserProfile)\.nuget\packages\
8 | C:\Users\linde\.nuget\packages\
9 | ProjectJson
10 | 4.2.0
11 |
12 |
13 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/produproperty/ViewModel/TrenPhillipKarissaModel.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.ObjectModel;
2 | using System.Linq;
3 | using lindexi.uwp.Framework.ViewModel;
4 |
5 | namespace produproperty.ViewModel
6 | {
7 | public class TrenPhillipKarissaModel : ViewModelBase
8 | {
9 |
10 | public ObservableCollection TrenPhillip
11 | {
12 | get; set;
13 | }
14 |
15 | private void ZunigaHarrison()
16 | {
17 | _fileHarrison = true;
18 | //SendMessageHandler.Invoke(this,new OpkaseyMessage(this,File.File));
19 | foreach (var temp in TrenPhillip)
20 | {
21 | temp.Nevaeh = false;
22 | }
23 | File.Nevaeh = true;
24 | }
25 |
26 | public TrenPhillip File
27 | {
28 | set
29 | {
30 | _file = value;
31 | ZunigaHarrison();
32 | OnPropertyChanged();
33 | }
34 | get
35 | {
36 |
37 | return _file;
38 | }
39 | }
40 | private TrenPhillip _file;
41 |
42 | public override void OnNavigatedFrom(object sender, object obj)
43 | {
44 |
45 | }
46 |
47 | public override void OnNavigatedTo(object sender, object obj)
48 | {
49 | TrenPhillip = new ObservableCollection();
50 | }
51 |
52 | public void ReceiveMessage(object sender, IMessage o)
53 | {
54 | OpkaseyMessage message = o as OpkaseyMessage;
55 | if (message != null)
56 | {
57 | if (_fileHarrison)
58 | {
59 | _fileHarrison = false;
60 | return;
61 | }
62 | var file = TrenPhillip.FirstOrDefault(temp => temp.File == message.File);
63 | if (file == null)
64 | {
65 | file = new TrenPhillip(message.File);
66 | TrenPhillip.Add(file);
67 | }
68 | foreach (var temp in TrenPhillip)
69 | {
70 | temp.Nevaeh = false;
71 | }
72 | file.Nevaeh = true;
73 | //_fileHarrison = true;
74 | //File = file;
75 | _file = file;
76 | OnPropertyChanged(nameof(File));
77 | }
78 | }
79 |
80 | private bool _fileHarrison;
81 | }
82 | }
--------------------------------------------------------------------------------
/测试/cprod测试/cprod测试.nuget.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | True
5 | NuGet
6 | C:\程序\produproperty\测试\cprod测试\project.lock.json
7 | $(UserProfile)\.nuget\packages\
8 | C:\Users\linde\.nuget\packages\
9 | ProjectJson
10 | 4.2.0
11 |
12 |
13 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/produproperty/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | winMarkdown
7 | 林德熙
8 | Assets\StoreLogo.png
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | Txt
32 | Assets\Square44x44Logo.scale.png
33 |
34 | .txt
35 | .md
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/produproperty/NewNoteStorage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Windows.Storage;
7 | using Windows.UI.Xaml.Media.Imaging;
8 |
9 | namespace produproperty
10 | {
11 | public class NewNoteStorage
12 | {
13 | public NewNoteStorage()
14 | {
15 | }
16 |
17 | public void Storage(StorageFolder folder)
18 | {
19 |
20 | }
21 |
22 | private void ImageStorage()
23 | {
24 |
25 | }
26 |
27 | private async Task RStorage(StorageFolder folder)
28 | {
29 | //name
30 | //作者
31 | //简介
32 | //目录
33 | //脚注
34 | string emptyStr = "\r\n";
35 | StringBuilder str = new StringBuilder();
36 | //
37 |
38 | str.Append(string.Format(emptyStr, "name"));
39 | str.Append(folder.Name + "\r\n");
40 | str.Append(string.Format(emptyStr, "name"));
41 |
42 | str.Append(string.Format(emptyStr, "作者"));
43 | str.Append(AuthoStr + "\r\n");
44 | str.Append(string.Format(emptyStr, "作者"));
45 |
46 | str.Append(string.Format(emptyStr, "简介"));
47 | str.Append(Introduction);
48 | str.Append(string.Format(emptyStr, "简介"));
49 |
50 | str.Append(string.Format(emptyStr, "目录"));
51 | foreach (var temp in FolderStorage)
52 | {
53 | str.Append(string.Format("[{0}]({1})\r\n", temp.Name, temp.FolderStorage.Path.Replace(
54 | folder.Path, ".")));
55 | }
56 | str.Append(string.Format(emptyStr, "目录"));
57 |
58 | str.Append(string.Format(emptyStr, "脚注"));
59 | str.Append(Artis);
60 | str.Append(string.Format(emptyStr, "脚注"));
61 |
62 | StorageFile file = await folder.CreateFileAsync("README.md", CreationCollisionOption.ReplaceExisting);
63 | await FileIO.WriteTextAsync(file, str.ToString());
64 | }
65 |
66 | public List FolderStorage
67 | {
68 | set;
69 | get;
70 | }=new List();
71 |
72 | public string AuthoStr
73 | {
74 | set;
75 | get;
76 | }
77 |
78 | public string Introduction
79 | {
80 | set;
81 | get;
82 | }
83 |
84 | public string Artis
85 | {
86 | set;
87 | get;
88 | }
89 |
90 | public BitmapImage Image
91 | {
92 | set;
93 | get;
94 | }
95 |
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/produproperty/View/NoteStoragePage.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
23 |
25 |
26 |
30 |
31 |
32 |
33 |
34 |
38 |
39 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
53 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/produproperty/View/KeyBehavior.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 | using Windows.System;
5 | using Windows.UI.Core;
6 | using Windows.UI.Xaml;
7 | using Windows.UI.Xaml.Input;
8 |
9 | namespace produproperty.View
10 | {
11 | public class KeyBehavior : IDisposable
12 | {
13 | public KeyBehavior(UIElement e)
14 | {
15 | e.KeyDown += OnKeyDown;
16 | e.AddHandler(UIElement.KeyDownEvent, new KeyEventHandler(OnKeyDown), true);
17 | _element = e;
18 | }
19 |
20 | private UIElement _element;
21 |
22 | public Dictionary Action { get; set; } = new Dictionary();
23 |
24 | public void Add(KeyAction action)
25 | {
26 | Action.Add(action.Key, action);
27 | }
28 |
29 | private void OnKeyDown(object sender, KeyRoutedEventArgs e)
30 | {
31 | var controlKeyState = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control);
32 | var ctrl = (controlKeyState & CoreVirtualKeyStates.Down) == CoreVirtualKeyStates.Down;
33 | var shiftKeyState = Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift);
34 | var shift = (shiftKeyState & CoreVirtualKeyStates.Down) == CoreVirtualKeyStates.Down;
35 | var altKeyState = Window.Current.CoreWindow.GetKeyState(VirtualKey.Menu);
36 | var alt = (altKeyState & CoreVirtualKeyStates.Down) == CoreVirtualKeyStates.Down;
37 |
38 | if (!ctrl && !shift && !alt)
39 | {
40 | return;
41 | }
42 |
43 | var key = e.Key.ToString();
44 |
45 | if (key == "Control" || key == "Shift" || key == "Menu")
46 | {
47 | return;
48 | }
49 |
50 | StringBuilder str = new StringBuilder();
51 | if (ctrl)
52 | {
53 | str.Append(KeyAction.Ctrl);
54 | }
55 | if (shift)
56 | {
57 | str.Append(KeyAction.Shift);
58 | }
59 | if (alt)
60 | {
61 | str.Append(KeyAction.Alt);
62 | }
63 | str.Append(key);
64 |
65 | key = str.ToString();
66 | if (Action.ContainsKey(key))
67 | {
68 | Action[key].Run();
69 | }
70 | }
71 |
72 | public void Dispose()
73 | {
74 | _element.KeyDown -= OnKeyDown;
75 | Action.Clear();
76 | }
77 | }
78 |
79 | public class KeyAction
80 | {
81 | public string Key
82 | {
83 | get; set;
84 | }
85 |
86 | public KeyAction(string key, Action action)
87 | {
88 | Action = action;
89 | Key = key;
90 | }
91 |
92 | public Action Action
93 | {
94 | get; set;
95 | }
96 |
97 | public void Run()
98 | {
99 | if (!CanExecute() || !_action)
100 | {
101 | return;
102 | }
103 | _action = false;
104 | Action?.Invoke(this);
105 | _action = true;
106 | }
107 |
108 | public Func CanExecute { get; set; } = () => true;
109 | private bool _action = true;
110 |
111 | public const string Ctrl = "ctrl";
112 | public const string Alt = "alt";
113 | public const string Shift = "shift";
114 | }
115 | }
--------------------------------------------------------------------------------
/produproperty/winmain_page.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
--------------------------------------------------------------------------------
/produproperty.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26430.16
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "produproperty", "produproperty\produproperty.csproj", "{C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cprod测试", "测试\cprod测试\cprod测试.csproj", "{1EC3C16D-002E-4238-8C81-0C261B7D3F28}"
9 | EndProject
10 | Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Framework", "..\uwp\uwp\src\Framework\Framework\Framework.shproj", "{2C57C77F-C734-48CD-92E9-53677AC7DAFA}"
11 | EndProject
12 | Global
13 | GlobalSection(SharedMSBuildProjectFiles) = preSolution
14 | ..\uwp\uwp\src\Framework\Framework\Framework.projitems*{2c57c77f-c734-48cd-92e9-53677ac7dafa}*SharedItemsImports = 13
15 | ..\uwp\uwp\src\Framework\Framework\Framework.projitems*{c551a6f3-0a4e-41a0-ab68-fe973abfaa1a}*SharedItemsImports = 4
16 | EndGlobalSection
17 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
18 | Debug|ARM = Debug|ARM
19 | Debug|x64 = Debug|x64
20 | Debug|x86 = Debug|x86
21 | Release|ARM = Release|ARM
22 | Release|x64 = Release|x64
23 | Release|x86 = Release|x86
24 | EndGlobalSection
25 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
26 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Debug|ARM.ActiveCfg = Debug|ARM
27 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Debug|ARM.Build.0 = Debug|ARM
28 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Debug|ARM.Deploy.0 = Debug|ARM
29 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Debug|x64.ActiveCfg = Debug|x64
30 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Debug|x64.Build.0 = Debug|x64
31 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Debug|x64.Deploy.0 = Debug|x64
32 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Debug|x86.ActiveCfg = Debug|x86
33 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Debug|x86.Build.0 = Debug|x86
34 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Debug|x86.Deploy.0 = Debug|x86
35 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Release|ARM.ActiveCfg = Release|ARM
36 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Release|ARM.Build.0 = Release|ARM
37 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Release|ARM.Deploy.0 = Release|ARM
38 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Release|x64.ActiveCfg = Release|x64
39 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Release|x64.Build.0 = Release|x64
40 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Release|x64.Deploy.0 = Release|x64
41 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Release|x86.ActiveCfg = Release|x86
42 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Release|x86.Build.0 = Release|x86
43 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}.Release|x86.Deploy.0 = Release|x86
44 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Debug|ARM.ActiveCfg = Debug|ARM
45 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Debug|ARM.Build.0 = Debug|ARM
46 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Debug|ARM.Deploy.0 = Debug|ARM
47 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Debug|x64.ActiveCfg = Debug|x64
48 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Debug|x64.Build.0 = Debug|x64
49 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Debug|x64.Deploy.0 = Debug|x64
50 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Debug|x86.ActiveCfg = Debug|x86
51 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Debug|x86.Build.0 = Debug|x86
52 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Debug|x86.Deploy.0 = Debug|x86
53 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Release|ARM.ActiveCfg = Release|ARM
54 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Release|ARM.Build.0 = Release|ARM
55 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Release|ARM.Deploy.0 = Release|ARM
56 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Release|x64.ActiveCfg = Release|x64
57 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Release|x64.Build.0 = Release|x64
58 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Release|x64.Deploy.0 = Release|x64
59 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Release|x86.ActiveCfg = Release|x86
60 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Release|x86.Build.0 = Release|x86
61 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}.Release|x86.Deploy.0 = Release|x86
62 | EndGlobalSection
63 | GlobalSection(SolutionProperties) = preSolution
64 | HideSolutionNode = FALSE
65 | EndGlobalSection
66 | EndGlobal
67 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.userosscache
8 | *.sln.docstates
9 |
10 | # User-specific files (MonoDevelop/Xamarin Studio)
11 | *.userprefs
12 |
13 | # Build results
14 | [Dd]ebug/
15 | [Dd]ebugPublic/
16 | [Rr]elease/
17 | [Rr]eleases/
18 | x64/
19 | x86/
20 | build/
21 | bld/
22 | [Bb]in/
23 | [Oo]bj/
24 |
25 | # Visual Studio 2015 cache/options directory
26 | .vs/
27 |
28 | # MSTest test Results
29 | [Tt]est[Rr]esult*/
30 | [Bb]uild[Ll]og.*
31 |
32 | # NUNIT
33 | *.VisualState.xml
34 | TestResult.xml
35 |
36 | # Build Results of an ATL Project
37 | [Dd]ebugPS/
38 | [Rr]eleasePS/
39 | dlldata.c
40 |
41 | # DNX
42 | project.lock.json
43 | artifacts/
44 |
45 | *_i.c
46 | *_p.c
47 | *_i.h
48 | *.ilk
49 | *.meta
50 | *.obj
51 | *.pch
52 | *.pdb
53 | *.pgc
54 | *.pgd
55 | *.rsp
56 | *.sbr
57 | *.tlb
58 | *.tli
59 | *.tlh
60 | *.tmp
61 | *.tmp_proj
62 | *.log
63 | *.vspscc
64 | *.vssscc
65 | .builds
66 | *.pidb
67 | *.svclog
68 | *.scc
69 |
70 | # Chutzpah Test files
71 | _Chutzpah*
72 |
73 | # Visual C++ cache files
74 | ipch/
75 | *.aps
76 | *.ncb
77 | *.opensdf
78 | *.sdf
79 | *.cachefile
80 |
81 | # Visual Studio profiler
82 | *.psess
83 | *.vsp
84 | *.vspx
85 |
86 | # TFS 2012 Local Workspace
87 | $tf/
88 |
89 | # Guidance Automation Toolkit
90 | *.gpState
91 |
92 | # ReSharper is a .NET coding add-in
93 | _ReSharper*/
94 | *.[Rr]e[Ss]harper
95 | *.DotSettings.user
96 |
97 | # JustCode is a .NET coding add-in
98 | .JustCode
99 |
100 | # TeamCity is a build add-in
101 | _TeamCity*
102 |
103 | # DotCover is a Code Coverage Tool
104 | *.dotCover
105 |
106 | # NCrunch
107 | _NCrunch_*
108 | .*crunch*.local.xml
109 |
110 | # MightyMoose
111 | *.mm.*
112 | AutoTest.Net/
113 |
114 | # Web workbench (sass)
115 | .sass-cache/
116 |
117 | # Installshield output folder
118 | [Ee]xpress/
119 |
120 | # DocProject is a documentation generator add-in
121 | DocProject/buildhelp/
122 | DocProject/Help/*.HxT
123 | DocProject/Help/*.HxC
124 | DocProject/Help/*.hhc
125 | DocProject/Help/*.hhk
126 | DocProject/Help/*.hhp
127 | DocProject/Help/Html2
128 | DocProject/Help/html
129 |
130 | # Click-Once directory
131 | publish/
132 |
133 | # Publish Web Output
134 | *.[Pp]ublish.xml
135 | *.azurePubxml
136 | ## TODO: Comment the next line if you want to checkin your
137 | ## web deploy settings but do note that will include unencrypted
138 | ## passwords
139 | #*.pubxml
140 |
141 | *.publishproj
142 |
143 | # NuGet Packages
144 | *.nupkg
145 | # The packages folder can be ignored because of Package Restore
146 | **/packages/*
147 | # except build/, which is used as an MSBuild target.
148 | !**/packages/build/
149 | # Uncomment if necessary however generally it will be regenerated when needed
150 | #!**/packages/repositories.config
151 |
152 | # Windows Azure Build Output
153 | csx/
154 | *.build.csdef
155 |
156 | # Windows Store app package directory
157 | AppPackages/
158 |
159 | # Visual Studio cache files
160 | # files ending in .cache can be ignored
161 | *.[Cc]ache
162 | # but keep track of directories ending in .cache
163 | !*.[Cc]ache/
164 |
165 | # Others
166 | ClientBin/
167 | [Ss]tyle[Cc]op.*
168 | ~$*
169 | *~
170 | *.dbmdl
171 | *.dbproj.schemaview
172 | *.pfx
173 | *.publishsettings
174 | node_modules/
175 | orleans.codegen.cs
176 |
177 | # RIA/Silverlight projects
178 | Generated_Code/
179 |
180 | # Backup & report files from converting an old project file
181 | # to a newer Visual Studio version. Backup files are not needed,
182 | # because we have git ;-)
183 | _UpgradeReport_Files/
184 | Backup*/
185 | UpgradeLog*.XML
186 | UpgradeLog*.htm
187 |
188 | # SQL Server files
189 | *.mdf
190 | *.ldf
191 |
192 | # Business Intelligence projects
193 | *.rdl.data
194 | *.bim.layout
195 | *.bim_*.settings
196 |
197 | # Microsoft Fakes
198 | FakesAssemblies/
199 |
200 | # Node.js Tools for Visual Studio
201 | .ntvs_analysis.dat
202 |
203 | # Visual Studio 6 build log
204 | *.plg
205 |
206 | # Visual Studio 6 workspace options file
207 | *.opt
208 |
209 | # LightSwitch generated files
210 | GeneratedArtifacts/
211 | _Pvt_Extensions/
212 | ModelManifest.xml
213 |
--------------------------------------------------------------------------------
/produproperty/ViewModel/NoteGoverment.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Threading.Tasks;
6 | using Windows.Storage;
7 | using Windows.Storage.AccessCache;
8 | using Windows.UI.Xaml.Media.Imaging;
9 | using Newtonsoft.Json;
10 |
11 | namespace produproperty.ViewModel
12 | {
13 | public class NoteGoverment
14 | {
15 | public NoteGoverment()
16 | {
17 |
18 | }
19 |
20 | public List FolderStorage
21 | {
22 | set;
23 | get;
24 | }
25 |
26 | public async Task Read()
27 | {
28 | // StorageItemAccessList
29 | //StorageItemAccessList
30 | //StorageApplicationPermissions.FutureAccessList.Add()
31 |
32 | //folder
33 | //data
34 |
35 | try
36 | {
37 | StorageFolder folder = ApplicationData.Current.LocalFolder;
38 | StorageFile file = await folder.GetFileAsync("data");
39 | var json = JsonSerializer.Create();
40 | FolderStorage = json.Deserialize>(new JsonTextReader(
41 | new StreamReader(await file.OpenStreamForReadAsync())));
42 | ReadFolderPick();
43 | }
44 | catch (FileNotFoundException)
45 | {
46 |
47 | }
48 | }
49 |
50 | private async void ReadFolderPick()
51 | {
52 | foreach (var temp in FolderStorage)
53 | {
54 | try
55 | {
56 | temp.FolderStorage =
57 | await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(temp.Token);
58 | }
59 | catch (Exception)
60 | {
61 |
62 | }
63 | }
64 |
65 | foreach (var temp in FolderStorage)
66 | {
67 | //image
68 | try
69 | {
70 | StorageFolder folder = temp.FolderStorage;
71 | string str = "image";
72 | folder = await folder.GetFolderAsync(str);
73 | StorageFile file = await folder.GetFileAsync(str + ".png");
74 | BitmapImage image = new BitmapImage();
75 | await image.SetSourceAsync(await file.OpenAsync(FileAccessMode.Read));
76 | temp.Image = image;
77 | }
78 | catch
79 | {
80 |
81 | }
82 | }
83 | }
84 |
85 |
86 |
87 |
88 |
89 | public async Task NewFolderStorage(StorageFolder storageFolder)
90 | {
91 | //放入记录
92 | ImpliedFolderStorage folder = new ImpliedFolderStorage(storageFolder);
93 | if (FolderStorage.Any(temp => temp.Equals(folder)))
94 | {
95 | return;
96 | }
97 | FolderStorage.Add(folder);
98 | folder.Token = StorageApplicationPermissions.FutureAccessList.Add(storageFolder);
99 | await Storage();
100 | }
101 |
102 | public async Task Storage()
103 | {
104 | var json = JsonSerializer.Create();
105 | StorageFolder folder = ApplicationData.Current.LocalFolder;
106 | StorageFile file = await folder.CreateFileAsync("temp");
107 | json.Serialize(new JsonTextWriter(
108 | new StreamWriter(
109 | await file.OpenStreamForWriteAsync())), FolderStorage);
110 | await file.MoveAsync(folder, "data", NameCollisionOption.ReplaceExisting);
111 | }
112 |
113 |
114 | private static NoteGoverment _noteGoverment;
115 |
116 | public static NoteGoverment Notegoverment
117 | {
118 | set
119 | {
120 | _noteGoverment = value;
121 | }
122 | get
123 | {
124 | return _noteGoverment ?? (_noteGoverment = new NoteGoverment());
125 | }
126 | }
127 | }
128 | }
--------------------------------------------------------------------------------
/测试/cprod测试/UnitTestApp.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using Windows.ApplicationModel;
7 | using Windows.ApplicationModel.Activation;
8 | using Windows.Foundation;
9 | using Windows.Foundation.Collections;
10 | using Windows.UI.Xaml;
11 | using Windows.UI.Xaml.Controls;
12 | using Windows.UI.Xaml.Controls.Primitives;
13 | using Windows.UI.Xaml.Data;
14 | using Windows.UI.Xaml.Input;
15 | using Windows.UI.Xaml.Media;
16 | using Windows.UI.Xaml.Navigation;
17 |
18 | namespace cprod测试
19 | {
20 | ///
21 | /// Provides application-specific behavior to supplement the default Application class.
22 | ///
23 | sealed partial class App : Application
24 | {
25 | ///
26 | /// Initializes the singleton application object. This is the first line of authored code
27 | /// executed, and as such is the logical equivalent of main() or WinMain().
28 | ///
29 | public App()
30 | {
31 | this.InitializeComponent();
32 | this.Suspending += OnSuspending;
33 | }
34 |
35 | ///
36 | /// Invoked when the application is launched normally by the end user. Other entry points
37 | /// will be used such as when the application is launched to open a specific file.
38 | ///
39 | /// Details about the launch request and process.
40 | protected override void OnLaunched(LaunchActivatedEventArgs e)
41 | {
42 |
43 | #if DEBUG
44 | if (System.Diagnostics.Debugger.IsAttached)
45 | {
46 | this.DebugSettings.EnableFrameRateCounter = true;
47 | }
48 | #endif
49 |
50 | Frame rootFrame = Window.Current.Content as Frame;
51 |
52 | // Do not repeat app initialization when the Window already has content,
53 | // just ensure that the window is active
54 | if (rootFrame == null)
55 | {
56 | // Create a Frame to act as the navigation context and navigate to the first page
57 | rootFrame = new Frame();
58 |
59 | rootFrame.NavigationFailed += OnNavigationFailed;
60 |
61 | if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
62 | {
63 | //TODO: Load state from previously suspended application
64 | }
65 |
66 | // Place the frame in the current Window
67 | Window.Current.Content = rootFrame;
68 | }
69 |
70 | Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.CreateDefaultUI();
71 |
72 | // Ensure the current window is active
73 | Window.Current.Activate();
74 |
75 | Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.Run(e.Arguments);
76 | }
77 |
78 | ///
79 | /// Invoked when Navigation to a certain page fails
80 | ///
81 | /// The Frame which failed navigation
82 | /// Details about the navigation failure
83 | void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
84 | {
85 | throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
86 | }
87 |
88 | ///
89 | /// Invoked when application execution is being suspended. Application state is saved
90 | /// without knowing whether the application will be terminated or resumed with the contents
91 | /// of memory still intact.
92 | ///
93 | /// The source of the suspend request.
94 | /// Details about the suspend request.
95 | private void OnSuspending(object sender, SuspendingEventArgs e)
96 | {
97 | var deferral = e.SuspendingOperation.GetDeferral();
98 | //TODO: Save application state and stop any background activity
99 | deferral.Complete();
100 | }
101 | }
102 | }
103 |
--------------------------------------------------------------------------------
/produproperty/MainPage.xaml.cs:
--------------------------------------------------------------------------------
1 | // lindexi
2 | // 20:47
3 |
4 | using produproperty.ViewModel;
5 | using System;
6 | using System.Collections.Generic;
7 | using System.Diagnostics;
8 | using System.IO;
9 | using System.Linq;
10 | using System.Runtime.InteropServices.WindowsRuntime;
11 | using Windows.ApplicationModel.DataTransfer;
12 | using Windows.Foundation;
13 | using Windows.Foundation.Collections;
14 | using Windows.System;
15 | using Windows.UI.Text;
16 | using Windows.UI.Xaml;
17 | using Windows.UI.Xaml.Controls;
18 | using Windows.UI.Xaml.Controls.Primitives;
19 | using Windows.UI.Xaml.Data;
20 | using Windows.UI.Xaml.Input;
21 | using Windows.UI.Xaml.Media;
22 | using Windows.UI.Xaml.Navigation;
23 | using Microsoft.Toolkit.Uwp.UI.Controls;
24 | using produproperty.View;
25 |
26 | //“空白页”项模板在 http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 上有介绍
27 |
28 | namespace produproperty
29 | {
30 | ///
31 | /// 可用于自身或导航至 Frame 内部的空白页。
32 | ///
33 | public sealed partial class MainPage : Page
34 | {
35 | public MainPage()
36 | {
37 | this.InitializeComponent();
38 | //ViewModel = (ViewModel.ViewModel)DataContext;
39 | //text.Paste += Text_Paste;
40 | //ViewModel.OnNavigatedTo(this, Frame);
41 |
42 |
43 | Key = new KeyBehavior(Content);
44 | Key.Add(new KeyAction(KeyAction.Ctrl + VirtualKey.S, e => Debug.Write("s")));
45 | }
46 |
47 | private KeyBehavior Key
48 | {
49 | set; get;
50 | }
51 |
52 | public ViewModel.ViewModel ViewModel
53 | {
54 | get; set;
55 | }
56 |
57 | //protected override void OnNavigatedTo(NavigationEventArgs e)
58 | //{
59 | // base.OnNavigatedTo(e);
60 | // //if (e.Parameter is viewModel)
61 | // //{
62 | // // view = e.Parameter as viewModel;
63 | // // DataContext = view;
64 | // //}
65 | // //else
66 | // //{
67 | // // view = new viewModel();
68 | // // view.Selectchange = selectchange;
69 | // // this.DataContext = view;
70 | // //}
71 | //}
72 |
73 | //private bool _ctrl;
74 | //private viewModel view;
75 |
76 | //private void Text_Paste(object sender, TextControlPasteEventArgs e)
77 | //{
78 | // view.Clipboard(e);
79 | //}
80 |
81 | //private void Grid_DragOver(object sender, DragEventArgs e)
82 | //{
83 | // e.AcceptedOperation = DataPackageOperation.Copy;
84 | // e.DragUIOverride.Caption = "打开";
85 | // e.Handled = true;
86 | //}
87 |
88 | //private void text_SelectionChanged(object sender, RoutedEventArgs e)
89 | //{
90 | // view.Select = text.SelectionStart;
91 | //}
92 |
93 | //private void selectchange(int select, int selecti)
94 | //{
95 | // text.SelectionStart = select;
96 | // text.SelectionLength = selecti;
97 | //}
98 |
99 | //private void text_KeyDown(object sender, KeyRoutedEventArgs e)
100 | //{
101 | // string str;
102 | // if (e.Key.Equals(VirtualKey.Control))
103 | // {
104 | // _ctrl = true;
105 | // }
106 | // else if ((e.Key == VirtualKey.V) && _ctrl)
107 | // {
108 | // }
109 |
110 | // if (_ctrl)
111 | // {
112 | // if (e.Key == VirtualKey.Z)
113 | // {
114 | // }
115 | // else if (e.Key == VirtualKey.K)
116 | // {
117 | // str = "\n```C#\n\n\n\n```\n";
118 | // view.Tianjia(str);
119 | // text.SelectionStart -= 6;
120 | // }
121 | // else if (e.Key == VirtualKey.S)
122 | // {
123 | // view.Storage();
124 | // }
125 | // }
126 |
127 | // //e.Handled = true;
128 | //}
129 |
130 | //private void text_KeyUp(object sender, KeyRoutedEventArgs e)
131 | //{
132 | // if (e.Key.Equals(VirtualKey.Control))
133 | // {
134 | // _ctrl = false;
135 | // }
136 | //}
137 |
138 | //private void option(object sender, RoutedEventArgs e)
139 | //{
140 | // //view.storage();
141 | // Frame frame = Window.Current.Content as Frame;
142 | // frame.Navigate(typeof(option), view);
143 | //}
144 |
145 | //private void RichEditBox_OnTextChanged(object sender, RoutedEventArgs e)
146 | //{
147 | // string str = "";
148 | // (sender as RichEditBox).Document.GetText(TextGetOptions.None, out str);
149 | // //Txt.Text = str;
150 |
151 | //}
152 | }
153 | }
--------------------------------------------------------------------------------
/produproperty/App.xaml.cs:
--------------------------------------------------------------------------------
1 | // lindexi
2 | // 20:47
3 |
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Diagnostics;
7 | using System.IO;
8 | using System.Linq;
9 | using System.Runtime.InteropServices.WindowsRuntime;
10 | using Windows.ApplicationModel;
11 | using Windows.ApplicationModel.Activation;
12 | using Windows.Foundation;
13 | using Windows.Foundation.Collections;
14 | using Windows.UI.Xaml;
15 | using Windows.UI.Xaml.Controls;
16 | using Windows.UI.Xaml.Controls.Primitives;
17 | using Windows.UI.Xaml.Data;
18 | using Windows.UI.Xaml.Input;
19 | using Windows.UI.Xaml.Media;
20 | using Windows.UI.Xaml.Navigation;
21 | using JYAnalyticsUniversal;
22 | using Microsoft.ApplicationInsights;
23 | using produproperty.View;
24 |
25 | namespace produproperty
26 | {
27 | ///
28 | /// 提供特定于应用程序的行为,以补充默认的应用程序类。
29 | ///
30 | sealed partial class App : Application
31 | {
32 | ///
33 | /// 初始化单一实例应用程序对象。这是执行的创作代码的第一行,
34 | /// 已执行,逻辑上等同于 main() 或 WinMain()。
35 | ///
36 | public App()
37 | {
38 | WindowsAppInitializer.InitializeAsync(
39 | WindowsCollectors.Metadata |
40 | WindowsCollectors.Session);
41 | this.InitializeComponent();
42 | this.Suspending += OnSuspending;
43 | this.Resuming += App_Resuming;
44 | }
45 |
46 | protected override void OnActivated(IActivatedEventArgs args)
47 | {
48 | base.OnActivated(args);
49 | track();
50 | }
51 |
52 | protected override void OnFileActivated(FileActivatedEventArgs args)
53 | {
54 | var file = args.Files[0];
55 | Frame frame = Window.Current.Content as Frame;
56 | if (frame == null)
57 | {
58 | frame = new Frame();
59 | Window.Current.Content = frame;
60 | }
61 | frame.Navigate(typeof(MainPage), file);
62 | Window.Current.Activate();
63 | base.OnFileActivated(args);
64 | }
65 |
66 |
67 | ///
68 | /// 在应用程序由最终用户正常启动时进行调用。
69 | /// 将在启动应用程序以打开特定文件等情况下使用。
70 | ///
71 | /// 有关启动请求和过程的详细信息。
72 | protected override void OnLaunched(LaunchActivatedEventArgs e)
73 | {
74 | #if DEBUG
75 | if (Debugger.IsAttached)
76 | {
77 | this.DebugSettings.EnableFrameRateCounter = true;
78 | }
79 | #endif
80 |
81 | Frame rootFrame = Window.Current.Content as Frame;
82 |
83 | // 不要在窗口已包含内容时重复应用程序初始化,
84 | // 只需确保窗口处于活动状态
85 | if (rootFrame == null)
86 | {
87 | // 创建要充当导航上下文的框架,并导航到第一页
88 | rootFrame = new Frame();
89 |
90 | rootFrame.NavigationFailed += OnNavigationFailed;
91 |
92 | if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
93 | {
94 | //TODO: 从之前挂起的应用程序加载状态
95 | }
96 |
97 | // 将框架放在当前窗口中
98 | Window.Current.Content = rootFrame;
99 | }
100 |
101 | if (rootFrame.Content == null)
102 | {
103 | // 当导航堆栈尚未还原时,导航到第一页,
104 | // 并通过将所需信息作为导航参数传入来配置
105 | // 参数
106 | rootFrame.Navigate(typeof(SplashPage), e.Arguments);
107 | }
108 | // 确保当前窗口处于活动状态
109 | Window.Current.Activate();
110 | track();
111 | }
112 |
113 |
114 |
115 | private void App_Resuming(object sender, object e)
116 | {
117 | track();
118 | }
119 |
120 |
121 | private async void track()
122 | {
123 | await JYAnalytics.StartTrackAsync("95da5b5ebcc881d470104c1543763bbc");
124 | }
125 |
126 | ///
127 | /// 导航到特定页失败时调用
128 | ///
129 | /// 导航失败的框架
130 | /// 有关导航失败的详细信息
131 | private void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
132 | {
133 | throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
134 | }
135 |
136 | ///
137 | /// 在将要挂起应用程序执行时调用。 在不知道应用程序
138 | /// 无需知道应用程序会被终止还是会恢复,
139 | /// 并让内存内容保持不变。
140 | ///
141 | /// 挂起的请求的源。
142 | /// 有关挂起请求的详细信息。
143 | private async void OnSuspending(object sender, SuspendingEventArgs e)
144 | {
145 | var deferral = e.SuspendingOperation.GetDeferral();
146 | //TODO: 保存应用程序状态并停止任何后台活动
147 | await JYAnalytics.EndTrackAsync(); //需注意此处代码位置不可更改
148 | deferral.Complete();
149 | }
150 | }
151 | }
--------------------------------------------------------------------------------
/produproperty/ViewModel/NoteStorage.cs:
--------------------------------------------------------------------------------
1 | // lindexi
2 | // 20:47
3 |
4 | using System;
5 | using System.Collections.ObjectModel;
6 | using System.Threading.Tasks;
7 | using Windows.Data.Xml.Dom;
8 | using Windows.Storage;
9 | using Windows.Storage.AccessCache;
10 | using Windows.Storage.Pickers;
11 | using Windows.UI.Notifications;
12 | using Windows.UI.Xaml;
13 | using Windows.UI.Xaml.Controls;
14 | using lindexi.uwp.Framework.ViewModel;
15 |
16 | namespace produproperty.ViewModel
17 | {
18 | ///
19 | ///
20 | public class NoteStorageModel : ViewModelBase
21 | {
22 | public NoteStorageModel()
23 | {
24 | }
25 |
26 |
27 |
28 | public override void OnNavigatedFrom(object sender, object obj)
29 | {
30 | }
31 |
32 | public override async void OnNavigatedTo(object sender, object obj)
33 | {
34 | await Read();
35 | }
36 |
37 | private async Task Read()
38 | {
39 | await NoteGoverment.Notegoverment.Read();
40 | FolderStorage = new ObservableCollection();
41 | if (NoteGoverment.Notegoverment.FolderStorage.Count == 0)
42 | {
43 | FoundEmptFolderVisibility = Visibility.Visible;
44 | }
45 | else
46 | {
47 | FoundEmptFolderVisibility = Visibility.Collapsed;
48 | }
49 | }
50 |
51 | public ObservableCollection FolderStorage
52 | {
53 | set;
54 | get;
55 | }
56 |
57 |
58 |
59 | ///
60 | /// 新建库
61 | ///
62 | public async void NewStorage()
63 | {
64 | FolderPicker pick = new FolderPicker();
65 | pick.FileTypeFilter.Add(".txt");
66 | var folder = await pick.PickSingleFolderAsync();
67 | //NoteGoverment.Notegoverment.NewFolderStorage()
68 | if (folder != null)
69 | {
70 | //如果不为空
71 | var newFolderStorage = NoteGoverment.Notegoverment.NewFolderStorage(folder);
72 | NavigateFolder(folder);
73 | await newFolderStorage;
74 | }
75 | }
76 |
77 |
78 | public void Navigate(object sender, ItemClickEventArgs e)
79 | {
80 | var folder = (ImpliedFolderStorage)e.ClickedItem;
81 | NavigateFolder(folder.FolderStorage);
82 | }
83 |
84 | private void NavigateFolder(StorageFolder folder)
85 | {
86 |
87 | }
88 |
89 | public string FoundEmptFolder
90 | {
91 | set;
92 | get;
93 | } = "没有找到存储文件\r\n请新建或选择一个已有文件夹";
94 |
95 | public Visibility FoundEmptFolderVisibility
96 | {
97 | set
98 | {
99 | _foundEmptFolderVisibility = value;
100 | OnPropertyChanged();
101 | }
102 | get
103 | {
104 | return _foundEmptFolderVisibility;
105 | }
106 | }
107 |
108 | private Visibility _foundEmptFolderVisibility;
109 |
110 |
111 |
112 | ///
113 | /// 打开
114 | ///
115 | public void OpenStorage()
116 | {
117 |
118 | }
119 |
120 | private void ToastText(string str)
121 | {
122 | var toastText = Windows.UI.Notifications.
123 | ToastTemplateType.ToastText01;
124 | var content = Windows.UI.Notifications.
125 | ToastNotificationManager.GetTemplateContent(toastText);
126 | XmlNodeList xml = content.GetElementsByTagName("text");
127 | xml[0].AppendChild(content.CreateTextNode(str));
128 | ToastNotification toast = new ToastNotification(content);
129 | ToastNotificationManager.CreateToastNotifier().Show(toast);
130 | }
131 |
132 | private async Task folder_storage()
133 | {
134 | var picker = new FolderPicker();
135 | picker.FileTypeFilter.Add(".folder");
136 | picker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
137 | picker.ViewMode = PickerViewMode.Thumbnail;
138 | var folder = await picker.PickSingleFolderAsync();
139 | return folder;
140 | }
141 | }
142 |
143 |
144 |
145 | class NavigateComposite : CombinationComposite
146 | {
147 | public NavigateComposite(ViewModelBase source,Type navigate, object obj) : base(source)
148 | {
149 | _run = Navigate;
150 | _navigate = navigate;
151 | _obj = obj;
152 | }
153 |
154 | private Type _navigate;
155 | private object _obj;
156 |
157 | private void Navigate(ViewModelBase source, object o)
158 | {
159 | var viewModel = (NavigateViewModel)source;
160 | viewModel.Navigate(_navigate, _obj);
161 | }
162 | }
163 | }
--------------------------------------------------------------------------------
/produproperty/ViewModel/MartinRhfinwittModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Reflection;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using Windows.Storage;
8 | using Windows.Storage.Pickers;
9 | using Windows.UI.Xaml;
10 | using Windows.UI.Xaml.Controls;
11 | using lindexi.uwp.Framework.ViewModel;
12 |
13 | namespace produproperty.ViewModel
14 | {
15 | public class MartinRhfinwittModel : NavigateViewModel
16 | {
17 | public MartinRhfinwittModel()
18 | {
19 | }
20 |
21 | public KaydenSergioModel KaydenSergioModel
22 | {
23 | get; set;
24 | }
25 |
26 | public TrenPhillipKarissaModel TrenPhillipKarissaModel
27 | {
28 | get; set;
29 | }
30 |
31 | public AlexzanderModel AlexzanderModel
32 | {
33 | get; set;
34 | }
35 |
36 | public Frame KaydenSergioFrame
37 | {
38 | set; get;
39 | }
40 |
41 | public Frame TrenPhillipKarissaFrame
42 | {
43 | set; get;
44 | }
45 |
46 | public Frame AlexzanderfFrame
47 | {
48 | set; get;
49 | }
50 |
51 |
52 |
53 | public override void OnNavigatedFrom(object sender, object obj)
54 | {
55 | AlexzanderModel.OnNavigatedFrom(this, obj);
56 | TrenPhillipKarissaModel.OnNavigatedFrom(this, obj);
57 | KaydenSergioModel.OnNavigatedFrom(this, obj);
58 | }
59 |
60 | public override void OnNavigatedTo(object sender, object obj)
61 | {
62 | AlexzanderModel = new AlexzanderModel();
63 | TrenPhillipKarissaModel = new TrenPhillipKarissaModel();
64 | KaydenSergioModel = new KaydenSergioModel();
65 |
66 | ViewModel = new List();
67 |
68 | ViewModel.Add(new ViewModelPage(AlexzanderModel));
69 | ViewModel.Add(new ViewModelPage(TrenPhillipKarissaModel));
70 | ViewModel.Add(new ViewModelPage(KaydenSergioModel));
71 |
72 | foreach (var temp in Application.Current.GetType().GetTypeInfo().Assembly.DefinedTypes.Where(temp => temp.IsSubclassOf(typeof(Page))))
73 | {
74 | //获取特性,特性有包含ViewModel
75 | var p = temp.GetCustomAttribute();
76 |
77 | var viewmodel = this.ViewModel.FirstOrDefault(t => t.Equals(p?.ViewModel));
78 | if (viewmodel != null)
79 | {
80 | viewmodel.Page = temp.AsType();
81 | }
82 | }
83 |
84 | foreach (var temp in Application.Current.GetType().GetTypeInfo().Assembly.DefinedTypes.Where(temp => temp.IsSubclassOf(typeof(Composite))))
85 | {
86 | Composite.Add((Composite)temp.AsType().GetConstructor(Type.EmptyTypes).Invoke(null));
87 | }
88 |
89 | //SendMessageHandler = ReceiveMessage;
90 |
91 | //AlexzanderModel.OnNavigatedTo(this, obj);
92 | //TrenPhillipKarissaModel.OnNavigatedTo(this, obj);
93 | //KaydenSergioModel.OnNavigatedTo(this, obj);
94 |
95 | //Read();
96 | }
97 |
98 |
99 | private List File { set; get; } = new List();
100 |
101 | public async void Read()
102 | {
103 | FolderPicker pick = new FolderPicker();
104 | pick.FileTypeFilter.Add(".txt");
105 | //var folder = await pick.PickSingleFolderAsync();
106 | //File.AddRange((await folder.GetFilesAsync()).Select(temp => new FileMariyah(temp)));
107 | await Navigate();
108 |
109 | var file = File.FirstOrDefault(temp => string.Equals(temp.Name, "README.md", StringComparison.CurrentCultureIgnoreCase));
110 | if (file != null)
111 | {
112 | //SendMessageHandler.Invoke(this, new OpkaseyMessage(this, file));
113 | }
114 | ReadHarrison = false;
115 | }
116 |
117 | private bool _readHarrison = true;
118 |
119 | public bool ReadHarrison
120 | {
121 | set
122 | {
123 | _readHarrison = value;
124 | OnPropertyChanged();
125 | }
126 | get
127 | {
128 | return _readHarrison;
129 | }
130 | }
131 |
132 |
133 | private async Task Navigate()
134 | {
135 | Navigate(AlexzanderModel.GetType(), File, AlexzanderfFrame);
136 | Navigate(TrenPhillipKarissaModel.GetType(), File, TrenPhillipKarissaFrame);
137 | Navigate(KaydenSergioModel.GetType(), File, KaydenSergioFrame);
138 | }
139 |
140 | }
141 |
142 | class OpkaseyMessage : Message
143 | {
144 | public OpkaseyMessage(ViewModelBase source, FileMariyah file) : base(source)
145 | {
146 | File = file;
147 | }
148 |
149 | public FileMariyah File
150 | {
151 | get; set;
152 | }
153 | }
154 |
155 | class OpkaseyComposite : Composite
156 | {
157 | public OpkaseyComposite()
158 | {
159 | Message = typeof(OpkaseyMessage);
160 | }
161 |
162 | public override void Run(ViewModelBase source, IMessage o)
163 | {
164 | MartinRhfinwittModel viewModel = source as MartinRhfinwittModel;
165 | OpkaseyMessage message = o as OpkaseyMessage;
166 | if (viewModel != null && message != null)
167 | {
168 | viewModel.TrenPhillipKarissaModel.ReceiveMessage(viewModel, message);
169 | viewModel.AlexzanderModel.ReceiveMessage(viewModel, message);
170 | viewModel.KaydenSergioModel.ReceiveMessage(viewModel, message);
171 | }
172 | }
173 | }
174 | }
175 |
--------------------------------------------------------------------------------
/produproperty/winmain_page.xaml.cs:
--------------------------------------------------------------------------------
1 | // lindexi
2 | // 20:47
3 |
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Diagnostics;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using Windows.ApplicationModel;
11 | using Windows.ApplicationModel.DataTransfer;
12 | using Windows.Media.SpeechSynthesis;
13 | using Windows.Storage;
14 | using Windows.System;
15 | using Windows.UI.Popups;
16 | using Windows.UI.Xaml;
17 | using Windows.UI.Xaml.Controls;
18 | using Windows.UI.Xaml.Input;
19 | using Windows.UI.Xaml.Navigation;
20 | using produproperty.ViewModel;
21 |
22 | namespace produproperty
23 | {
24 | public partial class WinmainPage : Page
25 | {
26 | public WinmainPage()
27 | {
28 | InitializeComponent();
29 | _ctrl = false;
30 | App.Current.Suspending += suspend;
31 | }
32 |
33 | protected override void OnNavigatedTo(NavigationEventArgs e)
34 | {
35 | StorageFolder folder = e.Parameter as StorageFolder;
36 | View = folder != null ? new winmain(folder) : new winmain(null);
37 | View.selectchange = text.Select;
38 |
39 | list_view.ItemsSource = View.file_observable_collection;
40 | }
41 |
42 | //private void storage(object sender, RoutedEventArgs e)
43 | //{
44 |
45 | //}
46 | private bool _ctrl;
47 |
48 | private winmain View
49 | {
50 | set;
51 | get;
52 | }
53 |
54 | private async void suspend(object sender, SuspendingEventArgs e)
55 | {
56 | SuspendingDeferral deferral = e.SuspendingOperation.GetDeferral();
57 | MessageDialog messageDialog = new MessageDialog("当前还在运行,确定退出", "退出");
58 | messageDialog.Commands.Add(new UICommand("确定", cmd =>
59 | {
60 | }, "退出"));
61 | messageDialog.Commands.Add(new UICommand("取消", cmd =>
62 | {
63 | }));
64 | messageDialog.DefaultCommandIndex = 0;
65 | messageDialog.CancelCommandIndex = 1;
66 | IUICommand result = await messageDialog.ShowAsync();
67 | if (result.Id as string == "退出")
68 | {
69 | }
70 |
71 | deferral.Complete();
72 | }
73 |
74 | private async void talk(object sender, RoutedEventArgs e)
75 | {
76 | if (string.IsNullOrEmpty(text.Text))
77 | {
78 | return;
79 | }
80 | AppBarButton button = sender as AppBarButton;
81 | if (button == null)
82 | {
83 | return;
84 | }
85 | button.IsEnabled = false;
86 |
87 | SpeechSynthesizer synthesizer = new SpeechSynthesizer();
88 | SpeechSynthesisStream stream = await synthesizer.SynthesizeTextToStreamAsync(text.Text);
89 | mediaelement.SetSource(stream, stream.ContentType);
90 | mediaelement.Play();
91 | button.IsEnabled = true;
92 | }
93 |
94 | private void selectext(object sender, RoutedEventArgs e)
95 | {
96 | TextBox text_box = sender as TextBox;
97 | if (text_box == null)
98 | {
99 | }
100 | else
101 | {
102 | View.@select = text.SelectionStart;
103 | View.select_length = text.SelectionLength;
104 | }
105 |
106 | //view.reminder = view.text_line(view.text, text.SelectionStart);
107 | //try
108 | //{
109 | // view.reminder = view.text[text.SelectionStart].ToString();
110 | // if (view.text[text.SelectionStart] == '\n')
111 | // {
112 | // view.reminder = "\\n";
113 | // }
114 | //}
115 | //catch
116 | //{
117 |
118 | //}
119 | }
120 |
121 | private void motify_file(object sender, SelectionChangedEventArgs e)
122 | {
123 | file_storage file = list_view.SelectedItem as file_storage;
124 | if (file != null)
125 | {
126 | View.open_file(file);
127 | }
128 | }
129 |
130 |
131 | private void Grid_DragOver(object sender, DragEventArgs e)
132 | {
133 | e.AcceptedOperation = DataPackageOperation.Copy;
134 | if (e.DragUIOverride != null)
135 | {
136 | e.DragUIOverride.Caption = "打开";
137 | }
138 | e.Handled = true;
139 | }
140 |
141 | private void keydown(object sender, KeyRoutedEventArgs e)
142 | {
143 | if (e.Key == VirtualKey.Control)
144 | {
145 | _ctrl = true;
146 | }
147 | if (_ctrl)
148 | {
149 | switch (e.Key)
150 | {
151 | case VirtualKey.S:
152 | View.storage();
153 | break;
154 | case VirtualKey.B:
155 | View.bold_text();
156 | break;
157 | case VirtualKey.K:
158 | View.mt();
159 | break;
160 |
161 | case VirtualKey.Q:
162 |
163 | break;
164 | }
165 | }
166 | }
167 |
168 | private void keyup(object sender, KeyRoutedEventArgs e)
169 | {
170 | if (e.Key == VirtualKey.Control)
171 | {
172 | _ctrl = false;
173 | }
174 | }
175 |
176 | private void textstorage(object sender, TextChangedEventArgs e)
177 | {
178 | if (View.text != text.Text.Replace("\r", ""))
179 | {
180 | View.text = text.Text.Replace("\r", "");
181 | }
182 | }
183 | }
184 | }
--------------------------------------------------------------------------------
/produproperty/View/DcBoxaproPage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.ObjectModel;
3 | using System.Diagnostics;
4 | using System.Linq;
5 | using System.Runtime.InteropServices.WindowsRuntime;
6 | using System.Windows.Input;
7 | using Windows.UI.Text;
8 | using Windows.UI.Xaml;
9 | using Windows.UI.Xaml.Controls;
10 | using Windows.UI.Xaml.Data;
11 | using Windows.UI.Xaml.Documents;
12 | using Windows.UI.Xaml.Markup;
13 | using Windows.UI.Xaml.Media;
14 | using Microsoft.Toolkit.Uwp.UI.Controls;
15 | using Microsoft.Xaml.Interactivity;
16 |
17 | // The Templated Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234235
18 |
19 | namespace produproperty.View
20 | {
21 | public sealed class DcBoxaproPage : RichEditBox
22 | {
23 | public DcBoxaproPage()
24 | {
25 | this.DefaultStyleKey = typeof(DcBoxaproPage);
26 | SelectionChanged += DcBoxaproPage_SelectionChanged;
27 |
28 | TextChanged += DcBoxaproPage_TextChanged;
29 |
30 | Key = new KeyBehavior(this);
31 | Key.Add(new KeyAction("ctrl+S", (e) =>
32 | {
33 | Storage();
34 | }));
35 | }
36 |
37 |
38 |
39 | private void Storage()
40 | {
41 | Storaged?.Invoke(this, null);
42 | }
43 |
44 | public event EventHandler Storaged;
45 |
46 |
47 | private void DcBoxaproPage_TextChanged(object sender, RoutedEventArgs e)
48 | {
49 | string str = "";
50 | Document.GetText(TextGetOptions.None, out str);
51 | _text = true;
52 | Text = str;
53 | }
54 |
55 | private bool _text;
56 |
57 | protected override void OnApplyTemplate()
58 | {
59 | base.OnApplyTemplate();
60 | }
61 |
62 | public KeyBehavior Key
63 | {
64 | get; set;
65 | }
66 |
67 | private bool _position;
68 | private bool _positiontext;
69 | private bool _positionlength;
70 |
71 |
72 | private void DcBoxaproPage_SelectionChanged(object sender, RoutedEventArgs e)
73 | {
74 | Debug.Write("进");
75 | _position = true;
76 | _positiontext = true;
77 | _position = true;
78 | _positionlength = true;
79 | SelectionIndex = Document.Selection.StartPosition;
80 | SelectionStr = Document.Selection.Text;
81 | SelectionLength = Document.Selection.Length;
82 | }
83 |
84 | public static readonly DependencyProperty TextProperty = DependencyProperty.Register(
85 | "Text", typeof(string), typeof(DcBoxaproPage), new PropertyMetadata(default(string), (d, e) =>
86 | {
87 | var dc = d as DcBoxaproPage;
88 | if (dc != null && dc._text)
89 | {
90 | dc._text = false;
91 | Debug.Write("tf\r\n");
92 | return;
93 | }
94 |
95 | if (e.NewValue.Equals(e.OldValue))
96 | {
97 | return;
98 | }
99 |
100 | Debug.Write("t\r\n");
101 | dc._text = true;
102 | dc?.Document.SetText(TextSetOptions.None, e.NewValue.ToString());
103 | }));
104 |
105 | public string Text
106 | {
107 | get
108 | {
109 | return (string)GetValue(TextProperty);
110 | }
111 | set
112 | {
113 | SetValue(TextProperty, value);
114 | }
115 | }
116 |
117 | public static readonly DependencyProperty SelectionIndexProperty = DependencyProperty.Register(
118 | "SelectionIndex", typeof(int), typeof(DcBoxaproPage), new PropertyMetadata(default(int), (d, e) =>
119 | {
120 |
121 | var dc = d as DcBoxaproPage;
122 | if (dc == null)
123 | {
124 | return;
125 | }
126 | else if (dc._position)
127 | {
128 | dc._position = false;
129 | Debug.Write("s出\n");
130 | return;
131 | }
132 |
133 | Debug.Write("s\n");
134 |
135 | dc.Document.Selection.StartPosition = (int)e.NewValue;
136 | }));
137 |
138 | public static readonly DependencyProperty SelectionStrProperty = DependencyProperty.Register(
139 | "SelectionStr", typeof(string), typeof(DcBoxaproPage), new PropertyMetadata(default(string), (d, e) =>
140 | {
141 | var dc = d as DcBoxaproPage;
142 | if (dc == null)
143 | {
144 | return;
145 | }
146 | else if (dc._positiontext)
147 | {
148 | dc._positiontext = false;
149 | Debug.Write("s出\n");
150 | return;
151 | }
152 |
153 | Debug.Write("s\n");
154 | dc.Document.Selection.Text = (string)e.NewValue;
155 | }));
156 |
157 | public static readonly DependencyProperty SelectionLengthProperty = DependencyProperty.Register(
158 | "SelectionLength", typeof(int), typeof(DcBoxaproPage), new PropertyMetadata(default(int), (d, e) =>
159 | {
160 | var dc = d as DcBoxaproPage;
161 | if (dc == null)
162 | {
163 | return;
164 | }
165 | else if (dc._positionlength)
166 | {
167 | dc._positionlength = false;
168 | Debug.Write("g出\r");
169 | return;
170 | }
171 |
172 | Debug.Write("g\r");
173 | var s = dc.Document.Selection.StartPosition;
174 | dc.Document.Selection.SetRange(s, s + (int)e.NewValue);
175 | }));
176 |
177 | public int SelectionLength
178 | {
179 | get
180 | {
181 | return (int)GetValue(SelectionLengthProperty);
182 | }
183 | set
184 | {
185 | SetValue(SelectionLengthProperty, value);
186 | }
187 | }
188 |
189 | public string SelectionStr
190 | {
191 | get
192 | {
193 | return (string)GetValue(SelectionStrProperty);
194 | }
195 | set
196 | {
197 | SetValue(SelectionStrProperty, value);
198 | }
199 | }
200 |
201 | public int SelectionIndex
202 | {
203 | get
204 | {
205 | return (int)GetValue(SelectionIndexProperty);
206 | }
207 | set
208 | {
209 | SetValue(SelectionIndexProperty, value);
210 | }
211 | }
212 | }
213 |
214 |
215 |
216 | }
217 |
218 |
--------------------------------------------------------------------------------
/测试/cprod测试/cprod测试.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | x86
7 | {1EC3C16D-002E-4238-8C81-0C261B7D3F28}
8 | AppContainerExe
9 | Properties
10 | cprod测试
11 | cprod测试
12 | zh-CN
13 | UAP
14 | 10.0.14393.0
15 | 10.0.10586.0
16 | 14
17 | 512
18 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
19 | cprod测试_TemporaryKey.pfx
20 | $(VisualStudioVersion)
21 |
22 |
23 | true
24 | bin\x86\Debug\
25 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
26 | ;2008
27 | full
28 | x86
29 | false
30 | prompt
31 | true
32 |
33 |
34 | bin\x86\Release\
35 | TRACE;NETFX_CORE;WINDOWS_UWP
36 | true
37 | ;2008
38 | pdbonly
39 | x86
40 | false
41 | prompt
42 | true
43 | true
44 |
45 |
46 | true
47 | bin\ARM\Debug\
48 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
49 | ;2008
50 | full
51 | ARM
52 | false
53 | prompt
54 | true
55 |
56 |
57 | bin\ARM\Release\
58 | TRACE;NETFX_CORE;WINDOWS_UWP
59 | true
60 | ;2008
61 | pdbonly
62 | ARM
63 | false
64 | prompt
65 | true
66 | true
67 |
68 |
69 | true
70 | bin\x64\Debug\
71 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
72 | ;2008
73 | full
74 | x64
75 | false
76 | prompt
77 | true
78 |
79 |
80 | bin\x64\Release\
81 | TRACE;NETFX_CORE;WINDOWS_UWP
82 | true
83 | ;2008
84 | pdbonly
85 | x64
86 | false
87 | prompt
88 | true
89 | true
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 | UnitTestApp.xaml
104 |
105 |
106 |
107 |
108 |
109 | MSBuild:Compile
110 | Designer
111 |
112 |
113 |
114 |
115 | Designer
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 | {c551a6f3-0a4e-41a0-ab68-fe973abfaa1a}
135 | produproperty
136 |
137 |
138 |
139 | 14.0
140 |
141 |
142 |
149 |
--------------------------------------------------------------------------------
/produproperty/Themes/Generic.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
100 |
101 |
--------------------------------------------------------------------------------
/produproperty/produproperty.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | x86
7 | {C551A6F3-0A4E-41A0-AB68-FE973ABFAA1A}
8 | AppContainerExe
9 | Properties
10 | produproperty
11 | produproperty
12 | zh-CN
13 | UAP
14 | 10.0.14393.0
15 | 10.0.14393.0
16 | 14
17 | 512
18 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
19 | produproperty_TemporaryKey.pfx
20 | 00E08BE2F9C7C3416C0B6C6D2A546F422497C8EE
21 | True
22 | Y:\AppPackages\
23 | Always
24 | x86|x64|arm
25 |
26 |
27 | true
28 | bin\x86\Debug\
29 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
30 | ;2008
31 | full
32 | x86
33 | false
34 | prompt
35 | true
36 | true
37 |
38 |
39 | bin\x86\Release\
40 | TRACE;NETFX_CORE;WINDOWS_UWP
41 | true
42 | ;2008
43 | pdbonly
44 | x86
45 | false
46 | prompt
47 | true
48 | true
49 |
50 |
51 | true
52 | bin\ARM\Debug\
53 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
54 | ;2008
55 | full
56 | ARM
57 | false
58 | prompt
59 | true
60 |
61 |
62 | bin\ARM\Release\
63 | TRACE;NETFX_CORE;WINDOWS_UWP
64 | true
65 | ;2008
66 | pdbonly
67 | ARM
68 | false
69 | prompt
70 | true
71 | true
72 |
73 |
74 | true
75 | bin\x64\Debug\
76 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
77 | ;2008
78 | full
79 | x64
80 | false
81 | prompt
82 | true
83 |
84 |
85 | bin\x64\Release\
86 | TRACE;NETFX_CORE;WINDOWS_UWP
87 | true
88 | ;2008
89 | pdbonly
90 | x64
91 | false
92 | prompt
93 | true
94 | true
95 |
96 |
97 |
98 |
99 | PreserveNewest
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 | App.xaml
108 |
109 |
110 | MainPage.xaml
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 | option.xaml
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 | AlexzanderPage.xaml
134 |
135 |
136 |
137 | KaydenSergioPage.xaml
138 |
139 |
140 |
141 | MartinRhfinwittPage.xaml
142 |
143 |
144 | NoteStoragePage.xaml
145 |
146 |
147 | SplashPage.xaml
148 |
149 |
150 | TrenPhillipKarissaPage.xaml
151 |
152 |
153 | winmain_page.xaml
154 |
155 |
156 |
157 |
158 | Designer
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 | MSBuild:Compile
208 | Designer
209 |
210 |
211 | MSBuild:Compile
212 | Designer
213 |
214 |
215 | Designer
216 | MSBuild:Compile
217 |
218 |
219 | MSBuild:Compile
220 | Designer
221 |
222 |
223 | Designer
224 | MSBuild:Compile
225 |
226 |
227 | Designer
228 | MSBuild:Compile
229 |
230 |
231 | Designer
232 | MSBuild:Compile
233 |
234 |
235 | Designer
236 | MSBuild:Compile
237 |
238 |
239 | Designer
240 | MSBuild:Compile
241 |
242 |
243 | Designer
244 | MSBuild:Compile
245 |
246 |
247 | Designer
248 | MSBuild:Compile
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 | 14.0
257 |
258 |
259 | true
260 |
261 |
262 | produproperty_StoreKey.pfx
263 |
264 |
265 |
272 |
--------------------------------------------------------------------------------
/produproperty/model.cs:
--------------------------------------------------------------------------------
1 | // lindexi
2 | // 20:47
3 |
4 | using System;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using Windows.ApplicationModel;
10 | using Windows.ApplicationModel.DataTransfer;
11 | using Windows.Graphics.Imaging;
12 | using Windows.Storage;
13 | using Windows.Storage.AccessCache;
14 | using Windows.Storage.Streams;
15 | using Windows.UI.Xaml.Media.Imaging;
16 | using produproperty.ViewModel;
17 |
18 | namespace produproperty
19 | {
20 | // internal class model
21 | // {
22 | // public model(viewModel view)
23 | // {
24 | // this.view = view;
25 | // ran = new Random();
26 | // ce();
27 |
28 | // App.Current.Suspending += Current_Suspending;
29 | // }
30 |
31 |
32 | // public StorageFile file
33 | // {
34 | // set
35 | // {
36 | // _file = value;
37 | // }
38 | // get
39 | // {
40 | // return _file;
41 | // }
42 | // }
43 |
44 | // public StorageFolder folder
45 | // {
46 | // set
47 | // {
48 | // _folder = value;
49 | // }
50 | // get
51 | // {
52 | // return _folder;
53 | // }
54 | // }
55 |
56 | // public async Task clipboard(DataPackageView con)
57 | // {
58 | // string str = string.Empty;
59 | // //文本
60 | // if (con.Contains(StandardDataFormats.Text))
61 | // {
62 | // str = await con.GetTextAsync();
63 | // return str;
64 | // }
65 |
66 | // //图片
67 | // if (con.Contains(StandardDataFormats.Bitmap))
68 | // {
69 | // RandomAccessStreamReference img = await con.GetBitmapAsync();
70 | // var imgstream = await img.OpenReadAsync();
71 | // BitmapImage bitmap = new BitmapImage();
72 | // bitmap.SetSource(imgstream);
73 |
74 | // WriteableBitmap src = new WriteableBitmap(bitmap.PixelWidth, bitmap.PixelHeight);
75 | // src.SetSource(imgstream);
76 |
77 | // BitmapDecoder decoder = await BitmapDecoder.CreateAsync(imgstream);
78 | // PixelDataProvider pxprd =
79 | // await
80 | // decoder.GetPixelDataAsync(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight,
81 | // new BitmapTransform(), ExifOrientationMode.RespectExifOrientation,
82 | // ColorManagementMode.DoNotColorManage);
83 | // byte[] buffer = pxprd.DetachPixelData();
84 |
85 | // str = "image";
86 | // StorageFolder folder = await _folder.GetFolderAsync(str);
87 |
88 | // StorageFile file =
89 | // await
90 | // folder.CreateFileAsync(
91 | // DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() +
92 | // DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() +
93 | // (ran.Next()%10000).ToString() + ".png", CreationCollisionOption.GenerateUniqueName);
94 |
95 | // using (var fileStream = await file.OpenAsync(FileAccessMode.ReadWrite))
96 | // {
97 | // var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, fileStream);
98 | // encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight, decoder.PixelWidth,
99 | // decoder.PixelHeight, decoder.DpiX, decoder.DpiY, buffer);
100 | // await encoder.FlushAsync();
101 |
102 | // str = $"\n";
103 | // }
104 | // }
105 |
106 | // //文件
107 | // if (con.Contains(StandardDataFormats.StorageItems))
108 | // {
109 | // var filelist = await con.GetStorageItemsAsync();
110 | // StorageFile file = filelist.OfType().First();
111 | // return await imgfolder(file);
112 | // }
113 |
114 | // return str;
115 | // }
116 |
117 | // public async void Current_Suspending(object sender, SuspendingEventArgs e)
118 | // {
119 | // //throw new NotImplementedException();
120 | // if (!string.IsNullOrEmpty(_text))
121 | // {
122 | // bool temp = _open;
123 | // _open = true;
124 | // await storage();
125 | // _open = temp;
126 | // }
127 | // }
128 |
129 | // public async void open_file(StorageFile file)
130 | // {
131 | // _open = true;
132 | // await storage();
133 | // this.file = file;
134 |
135 | // using (IRandomAccessStream readStream = await file.OpenAsync(FileAccessMode.Read))
136 | // {
137 | // using (DataReader dataReader = new DataReader(readStream))
138 | // {
139 | // UInt64 size = readStream.Size;
140 | // if (size <= UInt32.MaxValue)
141 | // {
142 | // UInt32 numBytesLoaded = await dataReader.LoadAsync((UInt32) size);
143 | // text = dataReader.ReadString(numBytesLoaded);
144 | // int i = text.IndexOf('\n');
145 | // if (i > 0)
146 | // {
147 | // name = text.Substring(0, i);
148 | // text = text.Substring(i + 2);
149 | // }
150 | // else
151 | // {
152 | // name = file.DisplayName;
153 | // }
154 | // i = text.LastIndexOf("http://blog.csdn.net/lindexi_gd");
155 | // if (i > 0)
156 | // {
157 | // if (i - 2 > 0)
158 | // {
159 | // i = i - 2;
160 | // }
161 | // text = text.Substring(0, i);
162 | // }
163 | // }
164 | // }
165 | // }
166 | // //name = file.DisplayName;
167 | // reminder = "打开" + file.Path;
168 | // }
169 |
170 | // public async Task imgfolder(StorageFile file)
171 | // {
172 | // string str = "image";
173 | // StorageFolder image = null;
174 | // try
175 | // {
176 | // image = await _folder.GetFolderAsync(str);
177 | // }
178 | // catch
179 | // {
180 | // }
181 | // if (image == null)
182 | // {
183 | // image = await _folder.CreateFolderAsync(str, CreationCollisionOption.OpenIfExists);
184 | // }
185 | // file = await file.CopyAsync(image, file.Name, NameCollisionOption.GenerateUniqueName);
186 |
187 | // if ((file.FileType == ".png") || (file.FileType == ".jpg"))
188 | // {
189 | // str = $"\r\n\r\n";
190 | // return str;
191 | // }
192 | // else
193 | // {
194 | // str = $"[{file.Name}](image/{file.Name})\r\n\r\n";
195 | // return str;
196 | // }
197 | // }
198 |
199 | // public async void accessfolder(StorageFolder folder)
200 | // {
201 | // if (string.Equals(this.folder.Path, folder.Path))
202 | // {
203 | // return;
204 | // }
205 |
206 | // writetext = false;
207 |
208 | // StorageApplicationPermissions.FutureAccessList.Clear();
209 | // StorageApplicationPermissions.FutureAccessList.Add(folder);
210 |
211 | // //image 文件夹
212 | // string str = "image";
213 | // StorageFolder image = null;
214 | // try
215 | // {
216 | // image = await folder.GetFolderAsync(str);
217 | // }
218 | // catch
219 | // {
220 | // }
221 | // if (image == null)
222 | // {
223 | // image = await folder.CreateFolderAsync(str, CreationCollisionOption.OpenIfExists);
224 | // }
225 | // //if (!this.folder.Path.Equals(folder.Path))
226 | // //{
227 | // await storage();
228 | // //}
229 | // this.folder = folder;
230 | // }
231 |
232 | // public async Task storage()
233 | // {
234 | // if (string.IsNullOrEmpty(text))
235 | // {
236 | // return;
237 | // }
238 |
239 | // //string str = name + "\n" + text.Replace("\r\n", "\n");
240 | // string[] temp = text.Split(new char[]
241 | // {
242 | // '\r', '\n'
243 | // });
244 | // StringBuilder str = new StringBuilder();
245 | // str.Append(name + "\n\n");
246 | // foreach (var t in temp)
247 | // {
248 | // if (!string.IsNullOrEmpty(t))
249 | // {
250 | // str.Append(t + "\n\n");
251 | // }
252 | // }
253 |
254 | // if (!_open)
255 | // {
256 | // str.Append("http://blog.csdn.net/lindexi_gd");
257 | // }
258 |
259 | // using (StorageStreamTransaction transaction = await file.OpenTransactedWriteAsync())
260 | // {
261 | // using (DataWriter dataWriter = new DataWriter(transaction.Stream))
262 | // {
263 | // dataWriter.WriteString(str.ToString());
264 | // transaction.Stream.Size = await dataWriter.StoreAsync();
265 | // await transaction.CommitAsync();
266 | // }
267 | // }
268 | // if (string.IsNullOrWhiteSpace(name))
269 | // {
270 | // name = "请输入标题";
271 | // return;
272 | // }
273 | // if (!_open)
274 | // {
275 | // file = await file.CopyAsync(folder, name + ".md", NameCollisionOption.GenerateUniqueName);
276 | // try
277 | // {
278 | // StorageFolder folder_storage = await ApplicationData.Current.LocalFolder.GetFolderAsync("text");
279 | // Directory.Delete(folder_storage.Path, true);
280 | // }
281 | // catch
282 | // {
283 | // }
284 | // _open = true;
285 | // }
286 |
287 | // reminder =
288 | // reminder =
289 | // "保存文件" + file.Path + " " + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString();
290 | // }
291 |
292 | // private StorageFile _file;
293 | // private StorageFolder _folder;
294 | // public string _name;
295 | // private bool _open;
296 |
297 |
298 | // public string _text;
299 | // public bool _writetext;
300 | // private viewModel view;
301 |
302 | // private string text
303 | // {
304 | // set
305 | // {
306 | // if (view == null)
307 | // {
308 | // _text = value;
309 | // }
310 | // else
311 | // {
312 | // view.Text = value;
313 | // }
314 | // }
315 | // get
316 | // {
317 | // if (view == null)
318 | // {
319 | // return _text;
320 | // }
321 | // else
322 | // {
323 | // return view.Text;
324 | // }
325 | // }
326 | // }
327 |
328 | // private bool writetext
329 | // {
330 | // set
331 | // {
332 | // _writetext = value;
333 | // }
334 | // get
335 | // {
336 | // return _writetext;
337 | // }
338 | // }
339 |
340 | // private string name
341 | // {
342 | // set
343 | // {
344 | // if (view == null)
345 | // {
346 | // _name = value;
347 | // }
348 | // else
349 | // {
350 | // view.Name = value;
351 | // }
352 | // }
353 | // get
354 | // {
355 | // if (view == null)
356 | // {
357 | // return _name;
358 | // }
359 | // else
360 | // {
361 | // return view.Name;
362 | // }
363 | // }
364 | // }
365 |
366 | // private string reminder
367 | // {
368 | // set
369 | // {
370 | // view.Reminder = value;
371 | // }
372 | // get
373 | // {
374 | // return view.Reminder;
375 | // }
376 | // }
377 |
378 | // private Random ran
379 | // {
380 | // set;
381 | // get;
382 | // }
383 |
384 | // private async void ce() //2016年1月10日11:04:29
385 | // {
386 | // _open = false;
387 | // string str;
388 | // StorageFolder temp = null;
389 | // try
390 | // {
391 | // str = "text";
392 | // temp =
393 | // await
394 | // ApplicationData.Current.LocalFolder.CreateFolderAsync(str, CreationCollisionOption.OpenIfExists);
395 | // }
396 | // catch
397 | // {
398 | // }
399 | // //默认位置
400 | // try
401 | // {
402 | // folder =
403 | // await
404 | // StorageApplicationPermissions.FutureAccessList.GetFolderAsync(
405 | // StorageApplicationPermissions.FutureAccessList.Entries[0].Token);
406 | // writetext = false;
407 | // }
408 | // catch
409 | // {
410 | // //str = "text";
411 | // folder = temp;
412 | // //=await ApplicationData.Current.LocalFolder.CreateFolderAsync(str,CreationCollisionOption.OpenIfExists);
413 | // //没有默认位置
414 |
415 | // writetext = true;
416 | // _text = "请选择默认保存位置";
417 | // }
418 |
419 | // //image 文件夹
420 | // str = "image";
421 | // StorageFolder image = null;
422 | // try
423 | // {
424 | // image = await folder.GetFolderAsync(str);
425 | // }
426 | // catch
427 | // {
428 | // }
429 | // if (image == null)
430 | // {
431 | // image = await folder.CreateFolderAsync(str, CreationCollisionOption.OpenIfExists);
432 | // }
433 |
434 | // //没有上次保存
435 | // str = "请输入标题";
436 | // bool open = false;
437 | // try
438 | // {
439 | // file = (await temp.GetFilesAsync()).First();
440 | // open = true;
441 | // }
442 | // catch
443 | // {
444 | // //新建
445 | // file = await temp.CreateFileAsync(str, CreationCollisionOption.GenerateUniqueName);
446 | // open = false;
447 | // }
448 |
449 | // if (open)
450 | // {
451 | // using (IRandomAccessStream readStream = await _file.OpenAsync(FileAccessMode.Read))
452 | // {
453 | // using (DataReader dataReader = new DataReader(readStream))
454 | // {
455 | // UInt64 size = readStream.Size;
456 | // if (size <= UInt32.MaxValue)
457 | // {
458 | // UInt32 numBytesLoaded = await dataReader.LoadAsync((UInt32) size);
459 | // text = dataReader.ReadString(numBytesLoaded);
460 | // int i = text.IndexOf('\n');
461 | // if (i > 0)
462 | // {
463 | // text = text.Substring(i + 1);
464 | // }
465 | // }
466 | // name = file.DisplayName;
467 | // }
468 | // }
469 | // }
470 | // else
471 | // {
472 | // text = @"
473 | //拖入图片自动生成,粘贴自动生成
474 | //按ctrl+k快速输入代码";
475 | // }
476 | // //_name = file.DisplayName;
477 | // }
478 | // }
479 | }
--------------------------------------------------------------------------------
/produproperty/ViewModel/viewModel.cs:
--------------------------------------------------------------------------------
1 | // lindexi
2 | // 20:47
3 |
4 | #region
5 |
6 | using System;
7 | using System.Collections.Generic;
8 | using System.ComponentModel;
9 | using System.Linq;
10 | using System.Reflection;
11 | using System.Runtime.CompilerServices;
12 | using System.ServiceModel.Channels;
13 | using System.Threading.Tasks;
14 | using Windows.ApplicationModel.Core;
15 | using Windows.ApplicationModel.DataTransfer;
16 | using Windows.Storage;
17 | using Windows.Storage.Pickers;
18 | using Windows.UI.Core;
19 | using Windows.UI.Xaml;
20 | using Windows.UI.Xaml.Controls;
21 | using lindexi.uwp.Framework.ViewModel;
22 | using produproperty.View;
23 |
24 | #endregion
25 |
26 | namespace produproperty.ViewModel
27 | {
28 | public class ViewModel : NavigateViewModel
29 | {
30 | public ViewModel()
31 | {
32 |
33 | }
34 |
35 | public override void OnNavigatedFrom(object sender, object obj)
36 | {
37 | }
38 |
39 | public override void OnNavigatedTo(object sender, object obj)
40 | {
41 | if (obj is Frame)
42 | {
43 | Content = (Frame)obj;
44 | }
45 |
46 | #if NOGUI
47 | #else
48 | Content.Navigate(typeof(produproperty.View.SplashPage));
49 | #endif
50 | if (this.ViewModel == null)
51 | {
52 | this.ViewModel = new List();
53 | //加载所有ViewModel
54 | var applacationAssembly = Application.Current.GetType().GetTypeInfo().Assembly;
55 |
56 | foreach (var temp in applacationAssembly.DefinedTypes.Where(temp => temp.IsSubclassOf(typeof(ViewModelBase))))
57 | {
58 | this.ViewModel.Add(new ViewModelPage(temp.AsType()));
59 | }
60 |
61 | foreach (var temp in applacationAssembly.DefinedTypes.Where(temp => temp.IsSubclassOf(typeof(Page))))
62 | {
63 | //获取特性,特性有包含ViewModel
64 | var p = temp.GetCustomAttribute();
65 |
66 | var viewmodel = this.ViewModel.FirstOrDefault(t => t.Equals(p?.ViewModel));
67 | if (viewmodel != null)
68 | {
69 | viewmodel.Page = temp.AsType();
70 | }
71 |
72 | }
73 |
74 | foreach (var temp in applacationAssembly.DefinedTypes.Where(temp => temp.IsSubclassOf(typeof(Composite))))
75 | {
76 | try
77 | {
78 | Composite.Add((Composite) temp.AsType().GetConstructor(Type.EmptyTypes).Invoke(null));
79 | }
80 | catch
81 | {
82 |
83 | }
84 | }
85 | }
86 | Navigate(typeof(NoteStorageModel), null);
87 | }
88 | }
89 |
90 | // public class ViewModel:NavigateViewModel
91 | // {
92 | // public ViewModel()
93 | // {
94 | // Send += Receive;
95 | // }
96 |
97 | // private string _str;
98 |
99 |
100 | // public string Str
101 | // {
102 | // set
103 | // {
104 | // _str = value;
105 | // OnPropertyChanged();
106 | // }
107 | // get { return _str; }
108 | // }
109 |
110 | // public override void OnNavigatedFrom(object obj)
111 | // {
112 | // }
113 |
114 | // public override void OnNavigatedTo(object obj)
115 | // {
116 | // Content = (Frame)Window.Current.Content;
117 | //#if NOGUI
118 | //#else
119 | // //Content.Navigate(typeof(SplashPage));
120 | //#endif
121 | // if (ViewModel == null)
122 | // {
123 | // ViewModel = new List();
124 | // //加载所有ViewModel
125 | // var applacationAssembly = Application.Current.GetType().GetTypeInfo().Assembly;
126 |
127 | // foreach (var temp in applacationAssembly.DefinedTypes.Where(temp => temp.IsSubclassOf(typeof(ViewModelBase))))
128 | // {
129 | // ViewModel.Add(new ViewModelPage(temp.AsType()));
130 | // }
131 |
132 | // foreach (var temp in applacationAssembly.DefinedTypes.Where(temp => temp.IsSubclassOf(typeof(Page))))
133 | // {
134 | // //获取特性,特性有包含ViewModel
135 | // var p = temp.GetCustomAttribute();
136 |
137 | // var viewmodel = ViewModel.FirstOrDefault(t => t.Equals(p?.ViewModel));
138 | // if (viewmodel != null)
139 | // {
140 | // viewmodel.Page = temp.AsType();
141 | // }
142 | // }
143 |
144 | // Composite = new List();
145 | // foreach (var temp in applacationAssembly.DefinedTypes.Where(temp => temp.IsSubclassOf(typeof(Composite))))
146 | // {
147 | // Composite.Add((Composite)temp.AsType().GetConstructor(Type.EmptyTypes)?.Invoke(null));
148 | // }
149 | // }
150 |
151 | // //Read();
152 | // }
153 |
154 | // public async Task Read()
155 | // {
156 | // FileSavePicker pick=new FileSavePicker();
157 | // pick.FileTypeChoices.Add("txt",new List(){".txt"});
158 | // var file = await pick.PickSaveFileAsync();
159 | // await FileIO.WriteTextAsync(file, Str);
160 | // }
161 | // }
162 |
163 | // public abstract class NavigateViewModel : ViewModelBase, INavigato
164 | // {
165 | // public Frame Content
166 | // {
167 | // set;
168 | // get;
169 | // }
170 |
171 | // public ViewModelBase this[string str]
172 | // {
173 | // get { return ViewModel.FirstOrDefault(temp => temp.Key == str)?.ViewModel; }
174 | // }
175 |
176 | // public List ViewModel
177 | // {
178 | // set;
179 | // get;
180 | // }
181 |
182 | // public async void Navigate(Type viewModel, object paramter)
183 | // {
184 | // _viewModel?.OnNavigatedFrom(null);
185 | // ViewModelPage view = ViewModel.Find(temp => temp.Equals(viewModel));
186 | // await view.Navigate(Content, paramter);
187 | // view.ViewModel.Send += Receive;
188 | // _viewModel = view.ViewModel;
189 | // }
190 | // //当前ViewModel
191 | // private ViewModelBase _viewModel;
192 | // }
193 |
194 | // public class ViewModelAttribute : Attribute
195 | // {
196 | // public Type ViewModel { get; set; }
197 | // }
198 |
199 |
200 |
201 | // public class ViewModelPage : IEquatable
202 | // {
203 | // public ViewModelPage()
204 | // {
205 | // //if (ViewModel == null)
206 | // //{
207 | // // //ViewModel=View.GetConstructor(null)
208 | // //}
209 | // }
210 |
211 | // public ViewModelPage(Type viewModel)
212 | // {
213 | // _viewModel = viewModel;
214 | // Key = _viewModel.Name;
215 | // }
216 |
217 | // public ViewModelPage(Type viewModel, Type page)
218 | // {
219 | // _viewModel = viewModel;
220 | // Page = page;
221 | // Key = _viewModel.Name;
222 | // }
223 |
224 | // public ViewModelPage(ViewModelBase viewModel, Type page)
225 | // {
226 | // ViewModel = viewModel;
227 | // Page = page;
228 | // Key = viewModel.GetType().Name;
229 | // _viewModel = viewModel.GetType();
230 | // }
231 |
232 | // public string Key
233 | // {
234 | // set;
235 | // get;
236 | // }
237 |
238 |
239 | // public ViewModelBase ViewModel
240 | // {
241 | // set;
242 | // get;
243 | // }
244 |
245 | // public Type Page
246 | // {
247 | // set;
248 | // get;
249 | // }
250 |
251 | // public async Task Navigate(Frame content, object paramter)
252 | // {
253 | // if (ViewModel == null)
254 | // {
255 | // ViewModel = (ViewModelBase)_viewModel.GetConstructor(Type.EmptyTypes).Invoke(null);
256 | // }
257 | // ViewModel.OnNavigatedTo(paramter);
258 | //#if NOGUI
259 | // return;
260 | //#endif
261 | // await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
262 | // () =>
263 | // {
264 | // content.Navigate(Page, ViewModel);
265 | // });
266 | // }
267 |
268 |
269 |
270 | // private Type _viewModel;
271 |
272 | // protected bool Equals(ViewModelPage other)
273 | // {
274 | // return _viewModel == other._viewModel;
275 | // }
276 |
277 | // public override bool Equals(object obj)
278 | // {
279 | // if (ReferenceEquals(null, obj)) return false;
280 | // if (ReferenceEquals(this, obj)) return true;
281 | // if (obj.GetType() != this.GetType()) return false;
282 | // return Equals((ViewModelPage)obj);
283 | // }
284 |
285 | // public override int GetHashCode()
286 | // {
287 | // return _viewModel?.GetHashCode() ?? 0;
288 | // }
289 |
290 | // public bool Equals(Type other)
291 | // {
292 | // return _viewModel == other;
293 | // }
294 | // }
295 | // public interface INavigato
296 | // {
297 | // Frame Content
298 | // {
299 | // set;
300 | // get;
301 | // }
302 |
303 | // void Navigate(Type viewModel, object parameter);
304 | // }
305 |
306 | // public abstract class ViewModelBase : ViewModelMessage, INavigable
307 | // {
308 | // ///
309 | // /// 从其他页面跳转出
310 | // /// 需要释放页面
311 | // ///
312 | // ///
313 | // ///
314 | // public abstract void OnNavigatedFrom(object obj);
315 | // ///
316 | // /// 从其他页面跳转到
317 | // /// 在这里初始化页面
318 | // ///
319 | // ///
320 | // ///
321 | // public abstract void OnNavigatedTo(object obj);
322 | // }
323 |
324 | // ///
325 | // /// 接收发送信息
326 | // ///
327 | // interface IAdapterMessage
328 | // {
329 | // ///
330 | // /// 发送信息
331 | // ///
332 | // EventHandler Send { set; get; }
333 | // ///
334 | // /// 接收信息
335 | // ///
336 | // ///
337 | // ///
338 | // void Receive(object source, Message message);
339 | // }
340 | // public interface INavigable
341 | // {
342 | // ///
343 | // /// 不使用这个页面
344 | // /// 清理页面
345 | // ///
346 | // ///
347 | // void OnNavigatedFrom(object obj);
348 |
349 | // ///
350 | // /// 跳转到
351 | // ///
352 | // ///
353 | // void OnNavigatedTo(object obj);
354 | // }
355 |
356 | // public abstract class ViewModelMessage : IAdapterMessage, INotifyPropertyChanged
357 | // {
358 | // ///
359 | // /// 发送信息
360 | // ///
361 | // public EventHandler Send { get; set; }
362 |
363 | // ///
364 | // /// 接收信息
365 | // ///
366 | // ///
367 | // ///
368 | // public virtual void Receive(object source, Message message)
369 | // {
370 | // if (Composite != null)
371 | // {
372 | // foreach (var temp in Composite)
373 | // {
374 | // if (message.GetType() == temp.Message)
375 | // {
376 | // temp.Run(this, message);
377 | // }
378 | // }
379 | // }
380 | // }
381 | // ///
382 | // /// 命令合成
383 | // /// 全部调用发送信息的处理在
384 | // ///
385 | // protected static List Composite { set; get; }
386 |
387 | // public event PropertyChangedEventHandler PropertyChanged;
388 |
389 | // protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
390 | // {
391 | // PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
392 | // }
393 | // }
394 |
395 | // public class Composite
396 | // {
397 | // public Type Message { get; set; }
398 | // public string Key { get; set; }
399 |
400 | // public virtual void Run(object sender, Message o)
401 | // {
402 |
403 | // }
404 | // }
405 |
406 | // internal class viewModel : NotifyProperty
407 | // {
408 | // public viewModel()
409 | // {
410 | // _m = new model(this);
411 | // OnPropertyChanged("text");
412 | // OnPropertyChanged("name");
413 |
414 | // object temp;
415 | // if (ApplicationData.Current.LocalSettings.Values.TryGetValue("width", out temp))
416 | // {
417 | // Width = temp as string;
418 | // }
419 | // else
420 | // {
421 | // Width = "20";
422 | // }
423 |
424 | // Advertisement = @"
425 | //作者:lindexi_gd
426 | //邮箱:lindexi_gd@163.com
427 | //博客地址:http://blog.csdn.net/lindexi_gd 在原博客看会有好的排版";
428 | // }
429 |
430 | // public string Text
431 | // {
432 | // set
433 | // {
434 | // _m._text = value;
435 | // OnPropertyChanged();
436 | // }
437 | // get
438 | // {
439 | // return _m._text;
440 | // }
441 | // }
442 |
443 | // public string Name
444 | // {
445 | // set
446 | // {
447 | // _m._name = value;
448 | // OnPropertyChanged();
449 | // }
450 | // get
451 | // {
452 | // return _m._name;
453 | // }
454 | // }
455 |
456 | // public bool Writetext
457 | // {
458 | // set
459 | // {
460 | // _m._writetext = value;
461 | // OnPropertyChanged();
462 | // }
463 | // get
464 | // {
465 | // return _m._writetext;
466 | // }
467 | // }
468 |
469 | // public string Addressfolder
470 | // {
471 | // set
472 | // {
473 | // OnPropertyChanged();
474 | // }
475 | // get
476 | // {
477 | // return _m.folder.Path;
478 | // }
479 | // }
480 |
481 | // public string Width
482 | // {
483 | // set
484 | // {
485 | // try
486 | // {
487 | // int temp;
488 | // temp = Convert.ToInt32(value);
489 | // _width = temp;
490 | // OnPropertyChanged();
491 | // ApplicationData.Current.LocalSettings.Values["width"] = value;
492 | // }
493 | // catch
494 | // {
495 | // }
496 | // }
497 | // get
498 | // {
499 | // return _width.ToString();
500 | // }
501 | // }
502 |
503 | // public string Advertisement
504 | // {
505 | // set
506 | // {
507 | // _advertisement = value;
508 | // OnPropertyChanged();
509 | // ApplicationData.Current.LocalSettings.Values["advertisement"] = value;
510 | // }
511 | // get
512 | // {
513 | // if (string.IsNullOrEmpty(_advertisement))
514 | // {
515 | // object temp;
516 | // if (ApplicationData.Current.LocalSettings.Values.TryGetValue("advertisement", out temp))
517 | // {
518 | // Advertisement = temp as string;
519 | // }
520 | // else
521 | // {
522 | // Advertisement = " ";
523 | // }
524 | // }
525 | // return _advertisement;
526 | // }
527 | // }
528 |
529 | // public Action Selectchange
530 | // {
531 | // set;
532 | // get;
533 | // }
534 |
535 | // public async void Clipboard(TextControlPasteEventArgs e)
536 | // {
537 | // if (Writetext)
538 | // {
539 | // return;
540 | // }
541 |
542 | // e.Handled = true;
543 | // DataPackageView con = Windows.ApplicationModel.DataTransfer.Clipboard.GetContent();
544 | // string str = await _m.clipboard(con);
545 | // Tianjia(str);
546 | // }
547 |
548 | // public async void Storage()
549 | // {
550 | // if (Writetext)
551 | // {
552 | // return;
553 | // }
554 | // await _m.storage();
555 |
556 | // //_m.Current_Suspending(this, new object() as SuspendingEventArgs);
557 | // }
558 |
559 | // public async void Dropimg(object sender, DragEventArgs e)
560 | // {
561 | // if (Writetext)
562 | // {
563 | // return;
564 | // }
565 | // DragOperationDeferral defer = e.GetDeferral();
566 | // try
567 | // {
568 | // DataPackageView dataView = e.DataView;
569 | // string str = await _m.clipboard(dataView);
570 | // Tianjia(str);
571 | // }
572 | // finally
573 | // {
574 | // defer.Complete();
575 | // }
576 | // }
577 |
578 | // public async void Accessfolder()
579 | // {
580 | // FolderPicker pick = new FolderPicker();
581 | // pick.FileTypeFilter.Add("*");
582 | // StorageFolder folder = await pick.PickSingleFolderAsync();
583 | // if (folder != null)
584 | // {
585 | // _m.accessfolder(folder);
586 | // }
587 | // Addressfolder = string.Empty;
588 | // }
589 |
590 | // public async void file_open()
591 | // {
592 | // FileOpenPicker pick = new FileOpenPicker();
593 | // //显示方式
594 | // pick.ViewMode = PickerViewMode.Thumbnail;
595 | // //选择最先的位置
596 | // pick.SuggestedStartLocation =
597 | // PickerLocationId.PicturesLibrary;
598 | // //后缀名
599 | // pick.FileTypeFilter.Add(".txt");
600 | // pick.FileTypeFilter.Add(".md");
601 |
602 | // StorageFile file = await pick.PickSingleFileAsync();
603 |
604 | // if (file != null)
605 | // {
606 | // _m.open_file(file);
607 | // }
608 | // }
609 |
610 | // public void Tianjia(string str)
611 | // {
612 | // int n;
613 | // n = Select;
614 | // int i;
615 | // for (i = 0; (n > 0) && (i < Text.Length); i++)
616 | // {
617 | // if (Text[i] != '\r') //&& text[i] != '\n')
618 | // {
619 | // n--;
620 | // }
621 | // }
622 | // Text = Text.Insert(i, str);
623 | // str = str.Replace("\r", "");
624 | // n = Select + str.Length;
625 | // if (n > Text.Length)
626 | // {
627 | // n = Text.Length;
628 | // }
629 | // Selectchange(n, 0);
630 |
631 | // //string t = text.Replace("\r\n", "\n");
632 | // //t = t.Insert(select, str);
633 | // //text = t.Replace("\n", "\r\n");
634 | // }
635 |
636 | // private string _advertisement;
637 |
638 | // private model _m;
639 | // private int _width;
640 |
641 | // public int Select;
642 | // }
643 | }
--------------------------------------------------------------------------------