diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/ExtendedWPFToolkit.sln b/Release/v1.6.0/ExtendedWPFToolkitSolution/ExtendedWPFToolkit.sln new file mode 100644 index 00000000..90ba96c7 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/ExtendedWPFToolkit.sln @@ -0,0 +1,261 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPFToolkit.Extended", "Src\WPFToolkit.Extended\WPFToolkit.Extended.csproj", "{72E591D6-8F83-4D8C-8F67-9C325E623234}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{01F2E61E-7F20-4F2E-8A3C-6604B18415B9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples", "Src\Samples\Samples\Samples.csproj", "{6EE69D18-F8AB-4CF9-AC3D-4719F36A8D99}" + ProjectSection(ProjectDependencies) = postProject + {1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6} = {1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6} + {44733C25-7F22-4B91-83C7-4E654063DFD6} = {44733C25-7F22-4B91-83C7-4E654063DFD6} + {22F36E4A-98E6-4A1C-96CA-52CA46F19274} = {22F36E4A-98E6-4A1C-96CA-52CA46F19274} + {511FB369-57D2-430B-9002-F367DF165E70} = {511FB369-57D2-430B-9002-F367DF165E70} + {CBED4977-79ED-4E46-AA00-0A4D83D333A6} = {CBED4977-79ED-4E46-AA00-0A4D83D333A6} + {CAB850B9-1D47-4F45-A6A5-07B48599B5D7} = {CAB850B9-1D47-4F45-A6A5-07B48599B5D7} + {10EFEFC6-F2CC-4C6E-955C-668B17F7F342} = {10EFEFC6-F2CC-4C6E-955C-668B17F7F342} + {A36AB9C9-D813-4018-B341-8729A9B5BD7D} = {A36AB9C9-D813-4018-B341-8729A9B5BD7D} + {EF6701CF-21C3-45B5-9C90-40BE6130BB7D} = {EF6701CF-21C3-45B5-9C90-40BE6130BB7D} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{F927B3FE-820C-4EE1-921F-D10D3AE287AE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Modules.BusyIndicator", "Src\Samples\Modules\Samples.Modules.BusyIndicator\Samples.Modules.BusyIndicator.csproj", "{1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Infrastructure", "Src\Samples\Samples.Infrastructure\Samples.Infrastructure.csproj", "{A4A049A4-665A-4651-9046-7D06E9D0CCDC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Modules.Calculator", "Src\Samples\Modules\Samples.Modules.Caclulator\Samples.Modules.Calculator.csproj", "{EF6701CF-21C3-45B5-9C90-40BE6130BB7D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Modules.ChildWindow", "Src\Samples\Modules\Samples.Modules.ChildWindow\Samples.Modules.ChildWindow.csproj", "{44733C25-7F22-4B91-83C7-4E654063DFD6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Modules.Color", "Src\Samples\Modules\Samples.Modules.Color\Samples.Modules.Color.csproj", "{A36AB9C9-D813-4018-B341-8729A9B5BD7D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Modules.DateTime", "Src\Samples\Modules\Samples.Modules.DateTime\Samples.Modules.DateTime.csproj", "{CAB850B9-1D47-4F45-A6A5-07B48599B5D7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Modules.Numeric", "Src\Samples\Modules\Samples.Modules.Numeric\Samples.Modules.Numeric.csproj", "{CBED4977-79ED-4E46-AA00-0A4D83D333A6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Modules.Text", "Src\Samples\Modules\Samples.Modules.Text\Samples.Modules.Text.csproj", "{10EFEFC6-F2CC-4C6E-955C-668B17F7F342}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Modules.Button", "Src\Samples\Modules\Samples.Modules.Button\Samples.Modules.Button.csproj", "{22F36E4A-98E6-4A1C-96CA-52CA46F19274}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Modules.PropertyGrid", "Src\Samples\Modules\Samples.Modules.PropertyGrid\Samples.Modules.PropertyGrid.csproj", "{511FB369-57D2-430B-9002-F367DF165E70}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.Modules.Wizard", "Src\Samples\Modules\Samples.Modules.Wizard\Samples.Modules.Wizard.csproj", "{DB0F7672-AFCC-4152-A231-7DCFDD5F219F}" +EndProject +Global + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 14 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = https://tfs.codeplex.com/tfs/tfs02 + SccLocalPath0 = . + SccProjectUniqueName1 = Src\\WPFToolkit.Extended\\WPFToolkit.Extended.csproj + SccProjectName1 = Src/WPFToolkit.Extended + SccLocalPath1 = Src\\WPFToolkit.Extended + SccProjectUniqueName2 = Src\\Samples\\Samples\\Samples.csproj + SccProjectTopLevelParentUniqueName2 = ExtendedWPFToolkit.sln + SccProjectName2 = Src/Samples/Samples + SccLocalPath2 = Src\\Samples\\Samples + SccProjectUniqueName3 = Src\\Samples\\Modules\\Samples.Modules.BusyIndicator\\Samples.Modules.BusyIndicator.csproj + SccProjectTopLevelParentUniqueName3 = ExtendedWPFToolkit.sln + SccProjectName3 = Src/Samples/Modules/Samples.Modules.BusyIndicator + SccLocalPath3 = Src\\Samples\\Modules\\Samples.Modules.BusyIndicator + SccProjectUniqueName4 = Src\\Samples\\Samples.Infrastructure\\Samples.Infrastructure.csproj + SccProjectTopLevelParentUniqueName4 = ExtendedWPFToolkit.sln + SccProjectName4 = Src/Samples/Samples.Infrastructure + SccLocalPath4 = Src\\Samples\\Samples.Infrastructure + SccProjectUniqueName5 = Src\\Samples\\Modules\\Samples.Modules.ChildWindow\\Samples.Modules.ChildWindow.csproj + SccProjectTopLevelParentUniqueName5 = ExtendedWPFToolkit.sln + SccProjectName5 = Src/Samples/Modules/Samples.Modules.ChildWindow + SccLocalPath5 = Src\\Samples\\Modules\\Samples.Modules.ChildWindow + SccProjectUniqueName6 = Src\\Samples\\Modules\\Samples.Modules.Color\\Samples.Modules.Color.csproj + SccProjectTopLevelParentUniqueName6 = ExtendedWPFToolkit.sln + SccProjectName6 = Src/Samples/Modules/Samples.Modules.Color + SccLocalPath6 = Src\\Samples\\Modules\\Samples.Modules.Color + SccProjectUniqueName7 = Src\\Samples\\Modules\\Samples.Modules.DateTime\\Samples.Modules.DateTime.csproj + SccProjectTopLevelParentUniqueName7 = ExtendedWPFToolkit.sln + SccProjectName7 = Src/Samples/Modules/Samples.Modules.DateTime + SccLocalPath7 = Src\\Samples\\Modules\\Samples.Modules.DateTime + SccProjectUniqueName8 = Src\\Samples\\Modules\\Samples.Modules.Numeric\\Samples.Modules.Numeric.csproj + SccProjectTopLevelParentUniqueName8 = ExtendedWPFToolkit.sln + SccProjectName8 = Src/Samples/Modules/Samples.Modules.Numeric + SccLocalPath8 = Src\\Samples\\Modules\\Samples.Modules.Numeric + SccProjectUniqueName9 = Src\\Samples\\Modules\\Samples.Modules.Text\\Samples.Modules.Text.csproj + SccProjectTopLevelParentUniqueName9 = ExtendedWPFToolkit.sln + SccProjectName9 = Src/Samples/Modules/Samples.Modules.Text + SccLocalPath9 = Src\\Samples\\Modules\\Samples.Modules.Text + SccProjectUniqueName10 = Src\\Samples\\Modules\\Samples.Modules.Button\\Samples.Modules.Button.csproj + SccProjectTopLevelParentUniqueName10 = ExtendedWPFToolkit.sln + SccProjectName10 = Src/Samples/Modules/Samples.Modules.Button + SccLocalPath10 = Src\\Samples\\Modules\\Samples.Modules.Button + SccProjectUniqueName11 = Src\\Samples\\Modules\\Samples.Modules.PropertyGrid\\Samples.Modules.PropertyGrid.csproj + SccProjectTopLevelParentUniqueName11 = ExtendedWPFToolkit.sln + SccProjectName11 = Src/Samples/Modules/Samples.Modules.PropertyGrid + SccLocalPath11 = Src\\Samples\\Modules\\Samples.Modules.PropertyGrid + SccProjectUniqueName12 = Src\\Samples\\Modules\\Samples.Modules.Caclulator\\Samples.Modules.Calculator.csproj + SccProjectTopLevelParentUniqueName12 = ExtendedWPFToolkit.sln + SccProjectName12 = Src/Samples/Modules/Samples.Modules.Caclulator + SccLocalPath12 = Src\\Samples\\Modules\\Samples.Modules.Caclulator + SccProjectUniqueName13 = Src\\Samples\\Modules\\Samples.Modules.Wizard\\Samples.Modules.Wizard.csproj + SccProjectTopLevelParentUniqueName13 = ExtendedWPFToolkit.sln + SccProjectName13 = Src/Samples/Modules/Samples.Modules.Wizard + SccLocalPath13 = Src\\Samples\\Modules\\Samples.Modules.Wizard + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Debug|Any CPU.Build.0 = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Debug|x86.ActiveCfg = Debug|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Release|Any CPU.ActiveCfg = Release|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Release|Any CPU.Build.0 = Release|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {72E591D6-8F83-4D8C-8F67-9C325E623234}.Release|x86.ActiveCfg = Release|Any CPU + {6EE69D18-F8AB-4CF9-AC3D-4719F36A8D99}.Debug|Any CPU.ActiveCfg = Debug|x86 + {6EE69D18-F8AB-4CF9-AC3D-4719F36A8D99}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {6EE69D18-F8AB-4CF9-AC3D-4719F36A8D99}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {6EE69D18-F8AB-4CF9-AC3D-4719F36A8D99}.Debug|x86.ActiveCfg = Debug|x86 + {6EE69D18-F8AB-4CF9-AC3D-4719F36A8D99}.Debug|x86.Build.0 = Debug|x86 + {6EE69D18-F8AB-4CF9-AC3D-4719F36A8D99}.Release|Any CPU.ActiveCfg = Release|x86 + {6EE69D18-F8AB-4CF9-AC3D-4719F36A8D99}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {6EE69D18-F8AB-4CF9-AC3D-4719F36A8D99}.Release|Mixed Platforms.Build.0 = Release|x86 + {6EE69D18-F8AB-4CF9-AC3D-4719F36A8D99}.Release|x86.ActiveCfg = Release|x86 + {6EE69D18-F8AB-4CF9-AC3D-4719F36A8D99}.Release|x86.Build.0 = Release|x86 + {1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6}.Debug|x86.ActiveCfg = Debug|Any CPU + {1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6}.Release|Any CPU.Build.0 = Release|Any CPU + {1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6}.Release|x86.ActiveCfg = Release|Any CPU + {A4A049A4-665A-4651-9046-7D06E9D0CCDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4A049A4-665A-4651-9046-7D06E9D0CCDC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4A049A4-665A-4651-9046-7D06E9D0CCDC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {A4A049A4-665A-4651-9046-7D06E9D0CCDC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {A4A049A4-665A-4651-9046-7D06E9D0CCDC}.Debug|x86.ActiveCfg = Debug|Any CPU + {A4A049A4-665A-4651-9046-7D06E9D0CCDC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4A049A4-665A-4651-9046-7D06E9D0CCDC}.Release|Any CPU.Build.0 = Release|Any CPU + {A4A049A4-665A-4651-9046-7D06E9D0CCDC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {A4A049A4-665A-4651-9046-7D06E9D0CCDC}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {A4A049A4-665A-4651-9046-7D06E9D0CCDC}.Release|x86.ActiveCfg = Release|Any CPU + {EF6701CF-21C3-45B5-9C90-40BE6130BB7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF6701CF-21C3-45B5-9C90-40BE6130BB7D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF6701CF-21C3-45B5-9C90-40BE6130BB7D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {EF6701CF-21C3-45B5-9C90-40BE6130BB7D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {EF6701CF-21C3-45B5-9C90-40BE6130BB7D}.Debug|x86.ActiveCfg = Debug|Any CPU + {EF6701CF-21C3-45B5-9C90-40BE6130BB7D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF6701CF-21C3-45B5-9C90-40BE6130BB7D}.Release|Any CPU.Build.0 = Release|Any CPU + {EF6701CF-21C3-45B5-9C90-40BE6130BB7D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {EF6701CF-21C3-45B5-9C90-40BE6130BB7D}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {EF6701CF-21C3-45B5-9C90-40BE6130BB7D}.Release|x86.ActiveCfg = Release|Any CPU + {44733C25-7F22-4B91-83C7-4E654063DFD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44733C25-7F22-4B91-83C7-4E654063DFD6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44733C25-7F22-4B91-83C7-4E654063DFD6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {44733C25-7F22-4B91-83C7-4E654063DFD6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {44733C25-7F22-4B91-83C7-4E654063DFD6}.Debug|x86.ActiveCfg = Debug|Any CPU + {44733C25-7F22-4B91-83C7-4E654063DFD6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44733C25-7F22-4B91-83C7-4E654063DFD6}.Release|Any CPU.Build.0 = Release|Any CPU + {44733C25-7F22-4B91-83C7-4E654063DFD6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {44733C25-7F22-4B91-83C7-4E654063DFD6}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {44733C25-7F22-4B91-83C7-4E654063DFD6}.Release|x86.ActiveCfg = Release|Any CPU + {A36AB9C9-D813-4018-B341-8729A9B5BD7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A36AB9C9-D813-4018-B341-8729A9B5BD7D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A36AB9C9-D813-4018-B341-8729A9B5BD7D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {A36AB9C9-D813-4018-B341-8729A9B5BD7D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {A36AB9C9-D813-4018-B341-8729A9B5BD7D}.Debug|x86.ActiveCfg = Debug|Any CPU + {A36AB9C9-D813-4018-B341-8729A9B5BD7D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A36AB9C9-D813-4018-B341-8729A9B5BD7D}.Release|Any CPU.Build.0 = Release|Any CPU + {A36AB9C9-D813-4018-B341-8729A9B5BD7D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {A36AB9C9-D813-4018-B341-8729A9B5BD7D}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {A36AB9C9-D813-4018-B341-8729A9B5BD7D}.Release|x86.ActiveCfg = Release|Any CPU + {CAB850B9-1D47-4F45-A6A5-07B48599B5D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CAB850B9-1D47-4F45-A6A5-07B48599B5D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CAB850B9-1D47-4F45-A6A5-07B48599B5D7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {CAB850B9-1D47-4F45-A6A5-07B48599B5D7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {CAB850B9-1D47-4F45-A6A5-07B48599B5D7}.Debug|x86.ActiveCfg = Debug|Any CPU + {CAB850B9-1D47-4F45-A6A5-07B48599B5D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CAB850B9-1D47-4F45-A6A5-07B48599B5D7}.Release|Any CPU.Build.0 = Release|Any CPU + {CAB850B9-1D47-4F45-A6A5-07B48599B5D7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {CAB850B9-1D47-4F45-A6A5-07B48599B5D7}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {CAB850B9-1D47-4F45-A6A5-07B48599B5D7}.Release|x86.ActiveCfg = Release|Any CPU + {CBED4977-79ED-4E46-AA00-0A4D83D333A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CBED4977-79ED-4E46-AA00-0A4D83D333A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CBED4977-79ED-4E46-AA00-0A4D83D333A6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {CBED4977-79ED-4E46-AA00-0A4D83D333A6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {CBED4977-79ED-4E46-AA00-0A4D83D333A6}.Debug|x86.ActiveCfg = Debug|Any CPU + {CBED4977-79ED-4E46-AA00-0A4D83D333A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CBED4977-79ED-4E46-AA00-0A4D83D333A6}.Release|Any CPU.Build.0 = Release|Any CPU + {CBED4977-79ED-4E46-AA00-0A4D83D333A6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {CBED4977-79ED-4E46-AA00-0A4D83D333A6}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {CBED4977-79ED-4E46-AA00-0A4D83D333A6}.Release|x86.ActiveCfg = Release|Any CPU + {10EFEFC6-F2CC-4C6E-955C-668B17F7F342}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {10EFEFC6-F2CC-4C6E-955C-668B17F7F342}.Debug|Any CPU.Build.0 = Debug|Any CPU + {10EFEFC6-F2CC-4C6E-955C-668B17F7F342}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {10EFEFC6-F2CC-4C6E-955C-668B17F7F342}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {10EFEFC6-F2CC-4C6E-955C-668B17F7F342}.Debug|x86.ActiveCfg = Debug|Any CPU + {10EFEFC6-F2CC-4C6E-955C-668B17F7F342}.Release|Any CPU.ActiveCfg = Release|Any CPU + {10EFEFC6-F2CC-4C6E-955C-668B17F7F342}.Release|Any CPU.Build.0 = Release|Any CPU + {10EFEFC6-F2CC-4C6E-955C-668B17F7F342}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {10EFEFC6-F2CC-4C6E-955C-668B17F7F342}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {10EFEFC6-F2CC-4C6E-955C-668B17F7F342}.Release|x86.ActiveCfg = Release|Any CPU + {22F36E4A-98E6-4A1C-96CA-52CA46F19274}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22F36E4A-98E6-4A1C-96CA-52CA46F19274}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22F36E4A-98E6-4A1C-96CA-52CA46F19274}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {22F36E4A-98E6-4A1C-96CA-52CA46F19274}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {22F36E4A-98E6-4A1C-96CA-52CA46F19274}.Debug|x86.ActiveCfg = Debug|Any CPU + {22F36E4A-98E6-4A1C-96CA-52CA46F19274}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22F36E4A-98E6-4A1C-96CA-52CA46F19274}.Release|Any CPU.Build.0 = Release|Any CPU + {22F36E4A-98E6-4A1C-96CA-52CA46F19274}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {22F36E4A-98E6-4A1C-96CA-52CA46F19274}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {22F36E4A-98E6-4A1C-96CA-52CA46F19274}.Release|x86.ActiveCfg = Release|Any CPU + {511FB369-57D2-430B-9002-F367DF165E70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {511FB369-57D2-430B-9002-F367DF165E70}.Debug|Any CPU.Build.0 = Debug|Any CPU + {511FB369-57D2-430B-9002-F367DF165E70}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {511FB369-57D2-430B-9002-F367DF165E70}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {511FB369-57D2-430B-9002-F367DF165E70}.Debug|x86.ActiveCfg = Debug|Any CPU + {511FB369-57D2-430B-9002-F367DF165E70}.Release|Any CPU.ActiveCfg = Release|Any CPU + {511FB369-57D2-430B-9002-F367DF165E70}.Release|Any CPU.Build.0 = Release|Any CPU + {511FB369-57D2-430B-9002-F367DF165E70}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {511FB369-57D2-430B-9002-F367DF165E70}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {511FB369-57D2-430B-9002-F367DF165E70}.Release|x86.ActiveCfg = Release|Any CPU + {DB0F7672-AFCC-4152-A231-7DCFDD5F219F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DB0F7672-AFCC-4152-A231-7DCFDD5F219F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DB0F7672-AFCC-4152-A231-7DCFDD5F219F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {DB0F7672-AFCC-4152-A231-7DCFDD5F219F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {DB0F7672-AFCC-4152-A231-7DCFDD5F219F}.Debug|x86.ActiveCfg = Debug|Any CPU + {DB0F7672-AFCC-4152-A231-7DCFDD5F219F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DB0F7672-AFCC-4152-A231-7DCFDD5F219F}.Release|Any CPU.Build.0 = Release|Any CPU + {DB0F7672-AFCC-4152-A231-7DCFDD5F219F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {DB0F7672-AFCC-4152-A231-7DCFDD5F219F}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {DB0F7672-AFCC-4152-A231-7DCFDD5F219F}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {6EE69D18-F8AB-4CF9-AC3D-4719F36A8D99} = {01F2E61E-7F20-4F2E-8A3C-6604B18415B9} + {F927B3FE-820C-4EE1-921F-D10D3AE287AE} = {01F2E61E-7F20-4F2E-8A3C-6604B18415B9} + {A4A049A4-665A-4651-9046-7D06E9D0CCDC} = {01F2E61E-7F20-4F2E-8A3C-6604B18415B9} + {1A9C0E21-DE3B-4B2D-9EF0-39AA1922CDA6} = {F927B3FE-820C-4EE1-921F-D10D3AE287AE} + {EF6701CF-21C3-45B5-9C90-40BE6130BB7D} = {F927B3FE-820C-4EE1-921F-D10D3AE287AE} + {44733C25-7F22-4B91-83C7-4E654063DFD6} = {F927B3FE-820C-4EE1-921F-D10D3AE287AE} + {A36AB9C9-D813-4018-B341-8729A9B5BD7D} = {F927B3FE-820C-4EE1-921F-D10D3AE287AE} + {CAB850B9-1D47-4F45-A6A5-07B48599B5D7} = {F927B3FE-820C-4EE1-921F-D10D3AE287AE} + {CBED4977-79ED-4E46-AA00-0A4D83D333A6} = {F927B3FE-820C-4EE1-921F-D10D3AE287AE} + {10EFEFC6-F2CC-4C6E-955C-668B17F7F342} = {F927B3FE-820C-4EE1-921F-D10D3AE287AE} + {22F36E4A-98E6-4A1C-96CA-52CA46F19274} = {F927B3FE-820C-4EE1-921F-D10D3AE287AE} + {511FB369-57D2-430B-9002-F367DF165E70} = {F927B3FE-820C-4EE1-921F-D10D3AE287AE} + {DB0F7672-AFCC-4152-A231-7DCFDD5F219F} = {F927B3FE-820C-4EE1-921F-D10D3AE287AE} + EndGlobalSection +EndGlobal diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/ExtendedWPFToolkit.vssscc b/Release/v1.6.0/ExtendedWPFToolkitSolution/ExtendedWPFToolkit.vssscc new file mode 100644 index 00000000..794f014c --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/ExtendedWPFToolkit.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Libs/Prism/Microsoft.Practices.Prism.UnityExtensions.dll b/Release/v1.6.0/ExtendedWPFToolkitSolution/Libs/Prism/Microsoft.Practices.Prism.UnityExtensions.dll new file mode 100644 index 00000000..99c42d6b Binary files /dev/null and b/Release/v1.6.0/ExtendedWPFToolkitSolution/Libs/Prism/Microsoft.Practices.Prism.UnityExtensions.dll differ diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Libs/Prism/Microsoft.Practices.Prism.dll b/Release/v1.6.0/ExtendedWPFToolkitSolution/Libs/Prism/Microsoft.Practices.Prism.dll new file mode 100644 index 00000000..383c1f46 Binary files /dev/null and b/Release/v1.6.0/ExtendedWPFToolkitSolution/Libs/Prism/Microsoft.Practices.Prism.dll differ diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Libs/Prism/Microsoft.Practices.ServiceLocation.dll b/Release/v1.6.0/ExtendedWPFToolkitSolution/Libs/Prism/Microsoft.Practices.ServiceLocation.dll new file mode 100644 index 00000000..3f889547 Binary files /dev/null and b/Release/v1.6.0/ExtendedWPFToolkitSolution/Libs/Prism/Microsoft.Practices.ServiceLocation.dll differ diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Libs/Prism/Microsoft.Practices.Unity.dll b/Release/v1.6.0/ExtendedWPFToolkitSolution/Libs/Prism/Microsoft.Practices.Unity.dll new file mode 100644 index 00000000..84f1870d Binary files /dev/null and b/Release/v1.6.0/ExtendedWPFToolkitSolution/Libs/Prism/Microsoft.Practices.Unity.dll differ diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/BusyIndicatorModule.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/BusyIndicatorModule.cs new file mode 100644 index 00000000..ecedc15e --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/BusyIndicatorModule.cs @@ -0,0 +1,47 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using Microsoft.Practices.Prism.Regions; +using Microsoft.Practices.Unity; +using Samples.Infrastructure; +using Samples.Infrastructure.Extensions; +using Samples.Modules.BusyIndicator.NavigationItems; +using Samples.Modules.BusyIndicator.Views; + +namespace Samples.Modules.BusyIndicator +{ + public class BusyIndicatorModule : ModuleBase + { + public BusyIndicatorModule( IUnityContainer container, IRegionManager regionManager ) + : base( container, regionManager ) + { + } + + protected override void RegisterViewsAndTypes() + { + Container.RegisterNavigationType( typeof( BusyIndicatorView ) ); + Container.RegisterNavigationType( typeof( BusyIndicatorCustomContentView ) ); + Container.RegisterNavigationType( typeof( BusyIndicatorCustomContentTemplateView ) ); + } + + protected override void InitializeModule() + { + RegionManager.RegisterViewWithRegion( RegionNames.NavigationRegion, typeof( BusyIndicatorNavItem ) ); + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Images/CdBurning32.png b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Images/CdBurning32.png new file mode 100644 index 00000000..2f6f4871 Binary files /dev/null and b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Images/CdBurning32.png differ diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/NavigationItems/BusyIndicatorNavItem.xaml b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/NavigationItems/BusyIndicatorNavItem.xaml new file mode 100644 index 00000000..b398bb50 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/NavigationItems/BusyIndicatorNavItem.xaml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorCustomContentTemplateView.xaml.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorCustomContentTemplateView.xaml.cs new file mode 100644 index 00000000..372ddbc5 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorCustomContentTemplateView.xaml.cs @@ -0,0 +1,35 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using Microsoft.Practices.Prism.Regions; +using Samples.Infrastructure.Controls; + +namespace Samples.Modules.BusyIndicator.Views +{ + /// + /// Interaction logic for BusyIndicatorCustomContentTemplateView.xaml + /// + [RegionMemberLifetime( KeepAlive = false )] + public partial class BusyIndicatorCustomContentTemplateView : DemoView + { + public BusyIndicatorCustomContentTemplateView() + { + InitializeComponent(); + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorCustomContentView.xaml b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorCustomContentView.xaml new file mode 100644 index 00000000..fc9dbf29 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorCustomContentView.xaml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorCustomContentView.xaml.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorCustomContentView.xaml.cs new file mode 100644 index 00000000..fc8d3440 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorCustomContentView.xaml.cs @@ -0,0 +1,35 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using Microsoft.Practices.Prism.Regions; +using Samples.Infrastructure.Controls; + +namespace Samples.Modules.BusyIndicator.Views +{ + /// + /// Interaction logic for BusyIndicatorCustomContentView.xaml + /// + [RegionMemberLifetime( KeepAlive = false )] + public partial class BusyIndicatorCustomContentView : DemoView + { + public BusyIndicatorCustomContentView() + { + InitializeComponent(); + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorView.xaml b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorView.xaml new file mode 100644 index 00000000..3a2f51d2 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorView.xaml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorView.xaml.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorView.xaml.cs new file mode 100644 index 00000000..60430d3a --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.BusyIndicator/Views/BusyIndicatorView.xaml.cs @@ -0,0 +1,50 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System; +using System.Windows.Data; +using Microsoft.Practices.Prism.Regions; +using Samples.Infrastructure.Controls; + +namespace Samples.Modules.BusyIndicator.Views +{ + /// + /// Interaction logic for HomeView.xaml + /// + [RegionMemberLifetime( KeepAlive = false )] + public partial class BusyIndicatorView : DemoView + { + public BusyIndicatorView() + { + InitializeComponent(); + } + } + + public class IntegerToTimespanConverter : IValueConverter + { + public object Convert( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture ) + { + return TimeSpan.FromMilliseconds( ( int )value ); + } + + public object ConvertBack( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture ) + { + throw new NotImplementedException(); + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.Button/ButtonModule.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.Button/ButtonModule.cs new file mode 100644 index 00000000..bbce34c8 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.Button/ButtonModule.cs @@ -0,0 +1,49 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using Microsoft.Practices.Prism.Regions; +using Microsoft.Practices.Unity; +using Samples.Infrastructure; +using Samples.Infrastructure.Extensions; +using Samples.Modules.Button.NavigationItems; +using Samples.Modules.Button.Views; + +namespace Samples.Modules.Button +{ + public class ButtonModule : ModuleBase + { + public ButtonModule( IUnityContainer container, IRegionManager regionManager ) + : base( container, regionManager ) + { + } + + protected override void InitializeModule() + { + RegionManager.RegisterViewWithRegion( RegionNames.NavigationRegion, typeof( ButtonSpinnerNavItem ) ); + RegionManager.RegisterViewWithRegion( RegionNames.NavigationRegion, typeof( DropDownButtonNavItem ) ); + RegionManager.RegisterViewWithRegion( RegionNames.NavigationRegion, typeof( SplitButtonNavItem ) ); + } + + protected override void RegisterViewsAndTypes() + { + Container.RegisterNavigationType( typeof( ButtonSpinnerView ) ); + Container.RegisterNavigationType( typeof( DropDownButtonView ) ); + Container.RegisterNavigationType( typeof( SplitButtonView ) ); + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.Button/NavigationItems/ButtonSpinnerNavItem.xaml b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.Button/NavigationItems/ButtonSpinnerNavItem.xaml new file mode 100644 index 00000000..c58de485 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Modules/Samples.Modules.Button/NavigationItems/ButtonSpinnerNavItem.xaml @@ -0,0 +1,30 @@ + + + + + + + + + + diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples.Infrastructure/ViewModelBase.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples.Infrastructure/ViewModelBase.cs new file mode 100644 index 00000000..f05a8389 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples.Infrastructure/ViewModelBase.cs @@ -0,0 +1,36 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System.ComponentModel; + +namespace Samples.Infrastructure +{ + public interface IViewModel + { + } + + public class ViewModelBase : IViewModel, INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + protected virtual void OnPropertyChanged( string propertyName ) + { + if( PropertyChanged != null ) + PropertyChanged( this, new PropertyChangedEventArgs( propertyName ) ); + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/App.config b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/App.config new file mode 100644 index 00000000..cc9cb69d --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/App.config @@ -0,0 +1,19 @@ + + + +
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/App.xaml b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/App.xaml new file mode 100644 index 00000000..b1529050 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/App.xaml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/App.xaml.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/App.xaml.cs new file mode 100644 index 00000000..2d79c8c5 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/App.xaml.cs @@ -0,0 +1,41 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System.Windows; + +namespace Samples +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + protected override void OnStartup( StartupEventArgs e ) + { + // Put the following code before InitializeComponent() + // Sets the culture to French (France) + //Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK"); + // Sets the UI culture to French (France) + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("da-DK"); + + base.OnStartup( e ); + Bootstrapper bootstrapper = new Bootstrapper(); + bootstrapper.Run(); + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Bootstrapper.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Bootstrapper.cs new file mode 100644 index 00000000..cdb78adc --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Bootstrapper.cs @@ -0,0 +1,47 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System.Windows; +using Microsoft.Practices.Prism.Modularity; +using Microsoft.Practices.Prism.UnityExtensions; +using Microsoft.Practices.Unity; + +namespace Samples +{ + public class Bootstrapper : UnityBootstrapper + { + protected override DependencyObject CreateShell() + { + Container.RegisterType(); + return Container.Resolve(); + } + + protected override void InitializeShell() + { + base.InitializeShell(); + + App.Current.MainWindow = ( Shell )Shell; + App.Current.MainWindow.Show(); + } + + protected override Microsoft.Practices.Prism.Modularity.IModuleCatalog CreateModuleCatalog() + { + return new ConfigurationModuleCatalog(); + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/IShellViewModel.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/IShellViewModel.cs new file mode 100644 index 00000000..d73c3052 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/IShellViewModel.cs @@ -0,0 +1,25 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ + +namespace Samples +{ + public interface IShellViewModel + { + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Images/Background.png b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Images/Background.png new file mode 100644 index 00000000..ea52078d Binary files /dev/null and b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Images/Background.png differ diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/AssemblyInfo.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..010c1f4e --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/AssemblyInfo.cs @@ -0,0 +1,71 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System.Reflection; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Extended WPF Toolkit Samples" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "Xceed Software Inc." )] +[assembly: AssemblyProduct( "Extended WPF Toolkit Samples" )] +[assembly: AssemblyCopyright( "Copyright © Xceed Software Inc. 2010-2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/Resources.Designer.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/Resources.Designer.cs new file mode 100644 index 00000000..b8917e35 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.235 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Samples.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Samples.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/Resources.resx b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/Resources.resx new file mode 100644 index 00000000..ffecec85 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/Settings.Designer.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/Settings.Designer.cs new file mode 100644 index 00000000..2afd4b0b --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.235 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Samples.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/Settings.settings b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/Settings.settings new file mode 100644 index 00000000..8f2fd95d --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Resources/TextBlockStyles.xaml b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Resources/TextBlockStyles.xaml new file mode 100644 index 00000000..47038bc9 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Resources/TextBlockStyles.xaml @@ -0,0 +1,29 @@ + + + + + + \ No newline at end of file diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Resources/TreeViewStyles.xaml b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Resources/TreeViewStyles.xaml new file mode 100644 index 00000000..3cfed9a6 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Resources/TreeViewStyles.xaml @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Samples.csproj b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Samples.csproj new file mode 100644 index 00000000..42d933ac --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Samples.csproj @@ -0,0 +1,146 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {6EE69D18-F8AB-4CF9-AC3D-4719F36A8D99} + WinExe + Properties + Samples + Samples + v4.0 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + SAK + SAK + SAK + SAK + Client + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Libs\Prism\Microsoft.Practices.Prism.dll + + + False + ..\..\..\Libs\Prism\Microsoft.Practices.Prism.UnityExtensions.dll + + + False + ..\..\..\Libs\Prism\Microsoft.Practices.ServiceLocation.dll + + + False + ..\..\..\Libs\Prism\Microsoft.Practices.Unity.dll + + + + + + + + + + + + + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + + + Shell.xaml + + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + {72E591D6-8F83-4D8C-8F67-9C325E623234} + WPFToolkit.Extended + + + {A4A049A4-665A-4651-9046-7D06E9D0CCDC} + Samples.Infrastructure + + + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + + + + \ No newline at end of file diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Samples.csproj.vspscc b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Samples.csproj.vspscc new file mode 100644 index 00000000..feffdeca --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Samples.csproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Shell.xaml b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Shell.xaml new file mode 100644 index 00000000..5c688663 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Shell.xaml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Shell.xaml.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Shell.xaml.cs new file mode 100644 index 00000000..91d0b30e --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/Shell.xaml.cs @@ -0,0 +1,51 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System.ComponentModel; +using System.Windows; +using System.Windows.Controls; + +namespace Samples +{ + public partial class Shell : Window + { + public Shell( IShellViewModel viewModel ) + { + InitializeComponent(); + ViewModel = viewModel; + } + + public IShellViewModel ViewModel + { + get + { + return ( IShellViewModel )DataContext; + } + private set + { + DataContext = value; + } + } + + private void TreeView_Loaded( object sender, RoutedEventArgs e ) + { + TreeView tv = ( TreeView )sender; + tv.Items.SortDescriptions.Add( new SortDescription( "Header", ListSortDirection.Ascending ) ); + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/ShellViewModel.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/ShellViewModel.cs new file mode 100644 index 00000000..d499c960 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/Samples/Samples/ShellViewModel.cs @@ -0,0 +1,49 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System; +using System.Windows.Input; +using Microsoft.Practices.Prism.Commands; +using Microsoft.Practices.Prism.Regions; +using Samples.Infrastructure; + +namespace Samples +{ + public class ShellViewModel : ViewModelBase, IShellViewModel + { + private readonly IRegionManager _regionManager; + + public ICommand NavigateCommand + { + get; + set; + } + + public ShellViewModel( IRegionManager regionManager ) + { + _regionManager = regionManager; + NavigateCommand = new DelegateCommand( Navigate ); + } + + private void Navigate( string navigatePath ) + { + if( !String.IsNullOrWhiteSpace( navigatePath ) ) + _regionManager.RequestNavigate( RegionNames.ContentRegion, navigatePath ); + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/BusyIndicator/Implementation/BusyIndicator.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/BusyIndicator/Implementation/BusyIndicator.cs new file mode 100644 index 00000000..93f09959 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/BusyIndicator/Implementation/BusyIndicator.cs @@ -0,0 +1,324 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Shapes; +using System.Windows.Threading; + +namespace Microsoft.Windows.Controls +{ + /// + /// A control to provide a visual indicator when an application is busy. + /// + [TemplateVisualState( Name = VisualStates.StateIdle, GroupName = VisualStates.GroupBusyStatus )] + [TemplateVisualState( Name = VisualStates.StateBusy, GroupName = VisualStates.GroupBusyStatus )] + [TemplateVisualState( Name = VisualStates.StateVisible, GroupName = VisualStates.GroupVisibility )] + [TemplateVisualState( Name = VisualStates.StateHidden, GroupName = VisualStates.GroupVisibility )] + [StyleTypedProperty( Property = "OverlayStyle", StyleTargetType = typeof( Rectangle ) )] + [StyleTypedProperty( Property = "ProgressBarStyle", StyleTargetType = typeof( ProgressBar ) )] + public class BusyIndicator : ContentControl + { + #region Private Members + + /// + /// Timer used to delay the initial display and avoid flickering. + /// + private DispatcherTimer _displayAfterTimer = new DispatcherTimer(); + + #endregion //Private Members + + #region Constructors + + static BusyIndicator() + { + DefaultStyleKeyProperty.OverrideMetadata( typeof( BusyIndicator ), new FrameworkPropertyMetadata( typeof( BusyIndicator ) ) ); + } + + public BusyIndicator() + { + _displayAfterTimer.Tick += DisplayAfterTimerElapsed; + } + + #endregion //Constructors + + #region Base Class Overrides + + /// + /// Overrides the OnApplyTemplate method. + /// + public override void OnApplyTemplate() + { + base.OnApplyTemplate(); + ChangeVisualState( false ); + } + + #endregion //Base Class Overrides + + #region Properties + + /// + /// Gets or sets a value indicating whether the BusyContent is visible. + /// + protected bool IsContentVisible + { + get; + set; + } + + #endregion //Properties + + #region Dependency Properties + + #region IsBusy + + /// + /// Identifies the IsBusy dependency property. + /// + public static readonly DependencyProperty IsBusyProperty = DependencyProperty.Register( + "IsBusy", + typeof( bool ), + typeof( BusyIndicator ), + new PropertyMetadata( false, new PropertyChangedCallback( OnIsBusyChanged ) ) ); + + /// + /// Gets or sets a value indicating whether the busy indicator should show. + /// + public bool IsBusy + { + get + { + return ( bool )GetValue( IsBusyProperty ); + } + set + { + SetValue( IsBusyProperty, value ); + } + } + + /// + /// IsBusyProperty property changed handler. + /// + /// BusyIndicator that changed its IsBusy. + /// Event arguments. + private static void OnIsBusyChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) + { + ( ( BusyIndicator )d ).OnIsBusyChanged( e ); + } + + /// + /// IsBusyProperty property changed handler. + /// + /// Event arguments. + protected virtual void OnIsBusyChanged( DependencyPropertyChangedEventArgs e ) + { + if( IsBusy ) + { + if( DisplayAfter.Equals( TimeSpan.Zero ) ) + { + // Go visible now + IsContentVisible = true; + } + else + { + // Set a timer to go visible + _displayAfterTimer.Interval = DisplayAfter; + _displayAfterTimer.Start(); + } + } + else + { + // No longer visible + _displayAfterTimer.Stop(); + IsContentVisible = false; + } + + ChangeVisualState( true ); + } + + #endregion //IsBusy + + #region Busy Content + + /// + /// Identifies the BusyContent dependency property. + /// + public static readonly DependencyProperty BusyContentProperty = DependencyProperty.Register( + "BusyContent", + typeof( object ), + typeof( BusyIndicator ), + new PropertyMetadata( null ) ); + + /// + /// Gets or sets a value indicating the busy content to display to the user. + /// + public object BusyContent + { + get + { + return ( object )GetValue( BusyContentProperty ); + } + set + { + SetValue( BusyContentProperty, value ); + } + } + + #endregion //Busy Content + + #region Busy Content Template + + /// + /// Identifies the BusyTemplate dependency property. + /// + public static readonly DependencyProperty BusyContentTemplateProperty = DependencyProperty.Register( + "BusyContentTemplate", + typeof( DataTemplate ), + typeof( BusyIndicator ), + new PropertyMetadata( null ) ); + + /// + /// Gets or sets a value indicating the template to use for displaying the busy content to the user. + /// + public DataTemplate BusyContentTemplate + { + get + { + return ( DataTemplate )GetValue( BusyContentTemplateProperty ); + } + set + { + SetValue( BusyContentTemplateProperty, value ); + } + } + + #endregion //Busy Content Template + + #region Display After + + /// + /// Identifies the DisplayAfter dependency property. + /// + public static readonly DependencyProperty DisplayAfterProperty = DependencyProperty.Register( + "DisplayAfter", + typeof( TimeSpan ), + typeof( BusyIndicator ), + new PropertyMetadata( TimeSpan.FromSeconds( 0.1 ) ) ); + + /// + /// Gets or sets a value indicating how long to delay before displaying the busy content. + /// + public TimeSpan DisplayAfter + { + get + { + return ( TimeSpan )GetValue( DisplayAfterProperty ); + } + set + { + SetValue( DisplayAfterProperty, value ); + } + } + + #endregion //Display After + + #region Overlay Style + + /// + /// Identifies the OverlayStyle dependency property. + /// + public static readonly DependencyProperty OverlayStyleProperty = DependencyProperty.Register( + "OverlayStyle", + typeof( Style ), + typeof( BusyIndicator ), + new PropertyMetadata( null ) ); + + /// + /// Gets or sets a value indicating the style to use for the overlay. + /// + public Style OverlayStyle + { + get + { + return ( Style )GetValue( OverlayStyleProperty ); + } + set + { + SetValue( OverlayStyleProperty, value ); + } + } + #endregion //Overlay Style + + #region ProgressBar Style + + /// + /// Identifies the ProgressBarStyle dependency property. + /// + public static readonly DependencyProperty ProgressBarStyleProperty = DependencyProperty.Register( + "ProgressBarStyle", + typeof( Style ), + typeof( BusyIndicator ), + new PropertyMetadata( null ) ); + + /// + /// Gets or sets a value indicating the style to use for the progress bar. + /// + public Style ProgressBarStyle + { + get + { + return ( Style )GetValue( ProgressBarStyleProperty ); + } + set + { + SetValue( ProgressBarStyleProperty, value ); + } + } + + #endregion //ProgressBar Style + + #endregion //Dependency Properties + + #region Methods + + /// + /// Handler for the DisplayAfterTimer. + /// + /// Event sender. + /// Event arguments. + private void DisplayAfterTimerElapsed( object sender, EventArgs e ) + { + _displayAfterTimer.Stop(); + IsContentVisible = true; + ChangeVisualState( true ); + } + + /// + /// Changes the control's visual state(s). + /// + /// True if state transitions should be used. + protected virtual void ChangeVisualState( bool useTransitions ) + { + VisualStateManager.GoToState( this, IsBusy ? VisualStates.StateBusy : VisualStates.StateIdle, useTransitions ); + VisualStateManager.GoToState( this, IsContentVisible ? VisualStates.StateVisible : VisualStates.StateHidden, useTransitions ); + } + + #endregion //Methods + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/BusyIndicator/Implementation/VisualStates.BusyIndicator.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/BusyIndicator/Implementation/VisualStates.BusyIndicator.cs new file mode 100644 index 00000000..f07928de --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/BusyIndicator/Implementation/VisualStates.BusyIndicator.cs @@ -0,0 +1,54 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ + +namespace Microsoft.Windows.Controls +{ + internal static partial class VisualStates + { + /// + /// Busyness group name. + /// + public const string GroupBusyStatus = "BusyStatusStates"; + + /// + /// Busy state for BusyIndicator. + /// + public const string StateBusy = "Busy"; + + /// + /// Idle state for BusyIndicator. + /// + public const string StateIdle = "Idle"; + + /// + /// BusyDisplay group. + /// + public const string GroupVisibility = "VisibilityStates"; + + /// + /// Visible state name for BusyIndicator. + /// + public const string StateVisible = "Visible"; + + /// + /// Hidden state name for BusyIndicator. + /// + public const string StateHidden = "Hidden"; + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/BusyIndicator/Themes/Generic.xaml b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/BusyIndicator/Themes/Generic.xaml new file mode 100644 index 00000000..6ee16c77 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/BusyIndicator/Themes/Generic.xaml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Collapsed + + + + + + + Collapsed + + + + + + + + + + + Visible + + + + + + + Visible + + + + + + + + + + + + + True + + + + + + + + + + + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/ButtonSpinner.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/ButtonSpinner.cs new file mode 100644 index 00000000..271d1686 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/ButtonSpinner.cs @@ -0,0 +1,279 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System.Windows; +using System.Windows.Controls.Primitives; +using System.Windows.Input; +using System.Windows.Markup; + +namespace Microsoft.Windows.Controls +{ + /// + /// Represents a spinner control that includes two Buttons. + /// + [TemplatePart( Name = PART_IncreaseButton, Type = typeof( ButtonBase ) )] + [TemplatePart( Name = PART_DecreaseButton, Type = typeof( ButtonBase ) )] + [ContentProperty( "Content" )] + public class ButtonSpinner : Spinner + { + private const string PART_IncreaseButton = "PART_IncreaseButton"; + private const string PART_DecreaseButton = "PART_DecreaseButton"; + + #region Properties + + #region AllowSpin + + public static readonly DependencyProperty AllowSpinProperty = DependencyProperty.Register( "AllowSpin", typeof( bool ), typeof( ButtonSpinner ), new UIPropertyMetadata( true ) ); + public bool AllowSpin + { + get + { + return ( bool )GetValue( AllowSpinProperty ); + } + set + { + SetValue( AllowSpinProperty, value ); + } + } + + #endregion //AllowSpin + + #region Content + + /// + /// Identifies the Content dependency property. + /// + public static readonly DependencyProperty ContentProperty = DependencyProperty.Register( "Content", typeof( object ), typeof( ButtonSpinner ), new PropertyMetadata( null, OnContentPropertyChanged ) ); + public object Content + { + get + { + return GetValue( ContentProperty ) as object; + } + set + { + SetValue( ContentProperty, value ); + } + } + + /// + /// ContentProperty property changed handler. + /// + /// ButtonSpinner that changed its Content. + /// Event arguments. + private static void OnContentPropertyChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) + { + ButtonSpinner source = d as ButtonSpinner; + source.OnContentChanged( e.OldValue, e.NewValue ); + } + + #endregion //Content + + #region DecreaseButton + + private ButtonBase _decreaseButton; + /// + /// Gets or sets the DecreaseButton template part. + /// + private ButtonBase DecreaseButton + { + get + { + return _decreaseButton; + } + set + { + if( _decreaseButton != null ) + { + _decreaseButton.Click -= OnButtonClick; + } + + _decreaseButton = value; + + if( _decreaseButton != null ) + { + _decreaseButton.Click += OnButtonClick; + } + } + } + + #endregion //DecreaseButton + + #region IncreaseButton + + private ButtonBase _increaseButton; + /// + /// Gets or sets the IncreaseButton template part. + /// + private ButtonBase IncreaseButton + { + get + { + return _increaseButton; + } + set + { + if( _increaseButton != null ) + { + _increaseButton.Click -= OnButtonClick; + } + + _increaseButton = value; + + if( _increaseButton != null ) + { + _increaseButton.Click += OnButtonClick; + } + } + } + + #endregion //IncreaseButton + + #region ShowButtonSpinner + + public static readonly DependencyProperty ShowButtonSpinnerProperty = DependencyProperty.Register( "ShowButtonSpinner", typeof( bool ), typeof( ButtonSpinner ), new UIPropertyMetadata( true ) ); + public bool ShowButtonSpinner + { + get + { + return ( bool )GetValue( ShowButtonSpinnerProperty ); + } + set + { + SetValue( ShowButtonSpinnerProperty, value ); + } + } + + #endregion //ShowButtonSpinner + + #endregion //Properties + + #region Constructors + + static ButtonSpinner() + { + DefaultStyleKeyProperty.OverrideMetadata( typeof( ButtonSpinner ), new FrameworkPropertyMetadata( typeof( ButtonSpinner ) ) ); + } + + #endregion //Constructors + + #region Base Class Overrides + + public override void OnApplyTemplate() + { + base.OnApplyTemplate(); + + IncreaseButton = GetTemplateChild( PART_IncreaseButton ) as ButtonBase; + DecreaseButton = GetTemplateChild( PART_DecreaseButton ) as ButtonBase; + + SetButtonUsage(); + } + + /// + /// Cancel LeftMouseButtonUp events originating from a button that has + /// been changed to disabled. + /// + /// The data for the event. + protected override void OnMouseLeftButtonUp( MouseButtonEventArgs e ) + { + base.OnMouseLeftButtonUp( e ); + + Point mousePosition; + if( IncreaseButton != null && IncreaseButton.IsEnabled == false ) + { + mousePosition = e.GetPosition( IncreaseButton ); + if( mousePosition.X > 0 && mousePosition.X < IncreaseButton.ActualWidth && + mousePosition.Y > 0 && mousePosition.Y < IncreaseButton.ActualHeight ) + { + e.Handled = true; + } + } + + if( DecreaseButton != null && DecreaseButton.IsEnabled == false ) + { + mousePosition = e.GetPosition( DecreaseButton ); + if( mousePosition.X > 0 && mousePosition.X < DecreaseButton.ActualWidth && + mousePosition.Y > 0 && mousePosition.Y < DecreaseButton.ActualHeight ) + { + e.Handled = true; + } + } + } + + /// + /// Called when valid spin direction changed. + /// + /// The old value. + /// The new value. + protected override void OnValidSpinDirectionChanged( ValidSpinDirections oldValue, ValidSpinDirections newValue ) + { + SetButtonUsage(); + } + + #endregion //Base Class Overrides + + #region Event Handlers + + /// + /// Handle click event of IncreaseButton and DecreaseButton template parts, + /// translating Click to appropriate Spin event. + /// + /// Event sender, should be either IncreaseButton or DecreaseButton template part. + /// Event args. + private void OnButtonClick( object sender, RoutedEventArgs e ) + { + if( AllowSpin ) + { + SpinDirection direction = sender == IncreaseButton ? SpinDirection.Increase : SpinDirection.Decrease; + OnSpin( new SpinEventArgs( direction ) ); + } + } + + #endregion //Event Handlers + + #region Methods + + /// + /// Occurs when the Content property value changed. + /// + /// The old value of the Content property. + /// The new value of the Content property. + protected virtual void OnContentChanged( object oldValue, object newValue ) + { + } + + /// + /// Disables or enables the buttons based on the valid spin direction. + /// + private void SetButtonUsage() + { + // buttonspinner adds buttons that spin, so disable accordingly. + if( IncreaseButton != null ) + { + IncreaseButton.IsEnabled = ( ( ValidSpinDirection & ValidSpinDirections.Increase ) == ValidSpinDirections.Increase ); + } + + if( DecreaseButton != null ) + { + DecreaseButton.IsEnabled = ( ( ValidSpinDirection & ValidSpinDirections.Decrease ) == ValidSpinDirections.Decrease ); + } + } + + #endregion //Methods + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/SpinDirection.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/SpinDirection.cs new file mode 100644 index 00000000..a77309f1 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/SpinDirection.cs @@ -0,0 +1,38 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ + +namespace Microsoft.Windows.Controls +{ + /// + /// Represents spin directions that could be initiated by the end-user. + /// + /// Preview + public enum SpinDirection + { + /// + /// Represents a spin initiated by the end-user in order to Increase a value. + /// + Increase = 0, + + /// + /// Represents a spin initiated by the end-user in order to Decrease a value. + /// + Decrease = 1 + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/SpinEventArgs.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/SpinEventArgs.cs new file mode 100644 index 00000000..abfc7413 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/SpinEventArgs.cs @@ -0,0 +1,49 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System.Windows; + +namespace Microsoft.Windows.Controls +{ + /// + /// Provides data for the Spinner.Spin event. + /// + /// Preview + public class SpinEventArgs : RoutedEventArgs + { + /// + /// Gets the SpinDirection for the spin that has been initiated by the + /// end-user. + /// + public SpinDirection Direction + { + get; + private set; + } + + /// + /// Initializes a new instance of the SpinEventArgs class. + /// + /// Spin direction. + public SpinEventArgs( SpinDirection direction ) + : base() + { + Direction = direction; + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/Spinner.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/Spinner.cs new file mode 100644 index 00000000..acb4c679 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/Spinner.cs @@ -0,0 +1,103 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System; +using System.Windows; +using System.Windows.Controls; + +namespace Microsoft.Windows.Controls +{ + /// + /// Base class for controls that represents controls that can spin. + /// + public abstract class Spinner : Control + { + #region Properties + + /// + /// Identifies the ValidSpinDirection dependency property. + /// + public static readonly DependencyProperty ValidSpinDirectionProperty = DependencyProperty.Register( "ValidSpinDirection", typeof( ValidSpinDirections ), typeof( Spinner ), new PropertyMetadata( ValidSpinDirections.Increase | ValidSpinDirections.Decrease, OnValidSpinDirectionPropertyChanged ) ); + public ValidSpinDirections ValidSpinDirection + { + get + { + return ( ValidSpinDirections )GetValue( ValidSpinDirectionProperty ); + } + set + { + SetValue( ValidSpinDirectionProperty, value ); + } + } + + /// + /// ValidSpinDirectionProperty property changed handler. + /// + /// ButtonSpinner that changed its ValidSpinDirection. + /// Event arguments. + private static void OnValidSpinDirectionPropertyChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) + { + Spinner source = ( Spinner )d; + ValidSpinDirections oldvalue = ( ValidSpinDirections )e.OldValue; + ValidSpinDirections newvalue = ( ValidSpinDirections )e.NewValue; + source.OnValidSpinDirectionChanged( oldvalue, newvalue ); + } + + #endregion //Properties + + /// + /// Occurs when spinning is initiated by the end-user. + /// + public event EventHandler Spin; + + /// + /// Initializes a new instance of the Spinner class. + /// + protected Spinner() + { + } + + /// + /// Raises the OnSpin event when spinning is initiated by the end-user. + /// + /// Spin event args. + protected virtual void OnSpin( SpinEventArgs e ) + { + ValidSpinDirections valid = e.Direction == SpinDirection.Increase ? ValidSpinDirections.Increase : ValidSpinDirections.Decrease; + + //Only raise the event if spin is allowed. + if( ( ValidSpinDirection & valid ) == valid ) + { + EventHandler handler = Spin; + if( handler != null ) + { + handler( this, e ); + } + } + } + + /// + /// Called when valid spin direction changed. + /// + /// The old value. + /// The new value. + protected virtual void OnValidSpinDirectionChanged( ValidSpinDirections oldValue, ValidSpinDirections newValue ) + { + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/ValidSpinDirections.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/ValidSpinDirections.cs new file mode 100644 index 00000000..a673376a --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Implementation/ValidSpinDirections.cs @@ -0,0 +1,44 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System; + +namespace Microsoft.Windows.Controls +{ + /// + /// Represents spin directions that are valid. + /// + [Flags] + public enum ValidSpinDirections + { + /// + /// Can not increase nor decrease. + /// + None = 0, + + /// + /// Can increase. + /// + Increase = 1, + + /// + /// Can decrease. + /// + Decrease = 2 + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Themes/Generic.xaml b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Themes/Generic.xaml new file mode 100644 index 00000000..cbcec02e --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ButtonSpinner/Themes/Generic.xaml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs new file mode 100644 index 00000000..3dae4f1f --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs @@ -0,0 +1,546 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using System.Windows.Threading; +using Microsoft.Windows.Controls.Core.Utilities; + +namespace Microsoft.Windows.Controls +{ + public class Calculator : Control + { + #region Members + + private ContentControl _buttonPanel; + private bool _showNewNumber = true; + private decimal _previousValue; + private Operation _lastOperation = Operation.None; + private CalculatorButtonType _lastButtonPressed; + private readonly Dictionary _timers = new Dictionary(); + + #endregion //Members + + #region Enumerations + + public enum CalculatorButtonType + { + Add, + Back, + Cancel, + Clear, + Decimal, + Divide, + Eight, + Equal, + Five, + Four, + Fraction, + MAdd, + MC, + MR, + MS, + MSub, + Multiply, + Negate, + Nine, + None, + One, + Percent, + Seven, + Six, + Sqrt, + Subtract, + Three, + Two, + Zero + } + + public enum Operation + { + Add, + Subtract, + Divide, + Multiply, + Percent, + Sqrt, + Fraction, + None, + Clear, + Negate + } + + #endregion //Enumerations + + #region Properties + + public ICommand CalculaterButtonClickCommand + { + get; + private set; + } + + #region CalculatorButtonType + + public static readonly DependencyProperty CalculatorButtonTypeProperty = DependencyProperty.RegisterAttached( "CalculatorButtonType", typeof( CalculatorButtonType ), typeof( Calculator ), new UIPropertyMetadata( CalculatorButtonType.None, OnCalculatorButtonTypeChanged ) ); + public static CalculatorButtonType GetCalculatorButtonType( DependencyObject target ) + { + return ( CalculatorButtonType )target.GetValue( CalculatorButtonTypeProperty ); + } + public static void SetCalculatorButtonType( DependencyObject target, CalculatorButtonType value ) + { + target.SetValue( CalculatorButtonTypeProperty, value ); + } + private static void OnCalculatorButtonTypeChanged( DependencyObject o, DependencyPropertyChangedEventArgs e ) + { + OnCalculatorButtonTypeChanged( o, ( CalculatorButtonType )e.OldValue, ( CalculatorButtonType )e.NewValue ); + } + private static void OnCalculatorButtonTypeChanged( DependencyObject o, CalculatorButtonType oldValue, CalculatorButtonType newValue ) + { + Button button = o as Button; + button.CommandParameter = newValue; + button.Content = CalculatorUtilities.GetCalculatorButtonContent( newValue ); + } + + #endregion //CalculatorButtonType + + #region DisplayText + + public static readonly DependencyProperty DisplayTextProperty = DependencyProperty.Register( "DisplayText", typeof( string ), typeof( Calculator ), new UIPropertyMetadata( "0", OnDisplayTextChanged ) ); + public string DisplayText + { + get + { + return ( string )GetValue( DisplayTextProperty ); + } + set + { + SetValue( DisplayTextProperty, value ); + } + } + + private static void OnDisplayTextChanged( DependencyObject o, DependencyPropertyChangedEventArgs e ) + { + Calculator calculator = o as Calculator; + if( calculator != null ) + calculator.OnDisplayTextChanged( ( string )e.OldValue, ( string )e.NewValue ); + } + + protected virtual void OnDisplayTextChanged( string oldValue, string newValue ) + { + // TODO: Add your property changed side-effects. Descendants can override as well. + } + + #endregion //DisplayText + + #region Memory + + public static readonly DependencyProperty MemoryProperty = DependencyProperty.Register( "Memory", typeof( decimal ), typeof( Calculator ), new UIPropertyMetadata( default( decimal ) ) ); + public decimal Memory + { + get + { + return ( decimal )GetValue( MemoryProperty ); + } + set + { + SetValue( MemoryProperty, value ); + } + } + + #endregion //Memory + + #region Precision + + public static readonly DependencyProperty PrecisionProperty = DependencyProperty.Register( "Precision", typeof( int ), typeof( Calculator ), new UIPropertyMetadata( 6 ) ); + public int Precision + { + get + { + return ( int )GetValue( PrecisionProperty ); + } + set + { + SetValue( PrecisionProperty, value ); + } + } + + #endregion //Precision + + #region Value + + public static readonly DependencyProperty ValueProperty = DependencyProperty.Register( "Value", typeof( decimal? ), typeof( Calculator ), new FrameworkPropertyMetadata( default( decimal ), FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, OnValueChanged ) ); + public decimal? Value + { + get + { + return ( decimal? )GetValue( ValueProperty ); + } + set + { + SetValue( ValueProperty, value ); + } + } + + private static void OnValueChanged( DependencyObject o, DependencyPropertyChangedEventArgs e ) + { + Calculator calculator = o as Calculator; + if( calculator != null ) + calculator.OnValueChanged( ( decimal? )e.OldValue, ( decimal? )e.NewValue ); + } + + protected virtual void OnValueChanged( decimal? oldValue, decimal? newValue ) + { + if( newValue.HasValue ) + DisplayText = newValue.ToString(); + else + DisplayText = "0"; + + RoutedPropertyChangedEventArgs args = new RoutedPropertyChangedEventArgs( oldValue, newValue ); + args.RoutedEvent = ValueChangedEvent; + RaiseEvent( args ); + } + + #endregion //Value + + #endregion //Properties + + #region Constructors + + static Calculator() + { + DefaultStyleKeyProperty.OverrideMetadata( typeof( Calculator ), new FrameworkPropertyMetadata( typeof( Calculator ) ) ); + } + + public Calculator() + { + CommandBindings.Add( new CommandBinding( CalculatorCommands.CalculatorButtonClick, ExecuteCalculatorButtonClick ) ); + AddHandler( MouseDownEvent, new MouseButtonEventHandler( Calculator_OnMouseDown ), true ); + } + + #endregion //Constructors + + #region Base Class Overrides + + public override void OnApplyTemplate() + { + base.OnApplyTemplate(); + + _buttonPanel = GetTemplateChild( "PART_CalculatorButtonPanel" ) as ContentControl; + } + + protected override void OnTextInput( TextCompositionEventArgs e ) + { + var buttonType = CalculatorUtilities.GetCalculatorButtonTypeFromText( e.Text ); + if( buttonType != CalculatorButtonType.None ) + { + SimulateCalculatorButtonClick( buttonType ); + ProcessCalculatorButton( buttonType ); + } + } + + #endregion //Base Class Overrides + + #region Event Handlers + + private void Calculator_OnMouseDown( object sender, MouseButtonEventArgs e ) + { + if( !IsFocused ) + { + Focus(); + e.Handled = true; + } + } + + void Timer_Tick( object sender, EventArgs e ) + { + DispatcherTimer timer = ( DispatcherTimer )sender; + timer.Stop(); + timer.Tick -= Timer_Tick; + + if( _timers.ContainsValue( timer ) ) + { + var button = _timers.Where( x => x.Value == timer ).Select( x => x.Key ).FirstOrDefault(); + if( button != null ) + { + VisualStateManager.GoToState( button, button.IsMouseOver ? "MouseOver" : "Normal", true ); + _timers.Remove( button ); + } + } + } + + #endregion //Event Handlers + + #region Methods + + private void Calculate() + { + if( _lastOperation == Operation.None ) + return; + + try + { + Value = Decimal.Round( CalculateValue( _lastOperation ), Precision ); + } + catch + { + Value = null; + DisplayText = "ERROR"; + } + } + + private void Calculate( Operation newOperation ) + { + if( !_showNewNumber ) + Calculate(); + + _lastOperation = newOperation; + } + + private void Calculate( Operation currentOperation, Operation newOperation ) + { + _lastOperation = currentOperation; + Calculate(); + _lastOperation = newOperation; + } + + private decimal CalculateValue( Operation operation ) + { + decimal newValue = decimal.Zero; + decimal currentValue = CalculatorUtilities.ParseDecimal( DisplayText ); + + switch( operation ) + { + case Operation.Add: + newValue = CalculatorUtilities.Add( _previousValue, currentValue ); + break; + case Operation.Subtract: + newValue = CalculatorUtilities.Subtract( _previousValue, currentValue ); + break; + case Operation.Multiply: + newValue = CalculatorUtilities.Multiply( _previousValue, currentValue ); + break; + case Operation.Divide: + newValue = CalculatorUtilities.Divide( _previousValue, currentValue ); + break; + //case Operation.Percent: + // newValue = CalculatorUtilities.Percent(_previousValue, currentValue); + // break; + case Operation.Sqrt: + newValue = CalculatorUtilities.SquareRoot( currentValue ); + break; + case Operation.Fraction: + newValue = CalculatorUtilities.Fraction( currentValue ); + break; + case Operation.Negate: + newValue = CalculatorUtilities.Negate( currentValue ); + break; + default: + newValue = decimal.Zero; + break; + } + + return newValue; + } + + void ProcessBackKey() + { + string displayText; + if( DisplayText.Length > 1 && !( DisplayText.Length == 2 && DisplayText[ 0 ] == '-' ) ) + { + displayText = DisplayText.Remove( DisplayText.Length - 1, 1 ); + } + else + { + displayText = "0"; + _showNewNumber = true; + } + + DisplayText = displayText; + } + + private void ProcessCalculatorButton( CalculatorButtonType buttonType ) + { + if( CalculatorUtilities.IsDigit( buttonType ) ) + ProcessDigitKey( buttonType ); + else if( ( CalculatorUtilities.IsMemory( buttonType ) ) ) + ProcessMemoryKey( buttonType ); + else + ProcessOperationKey( buttonType ); + + _lastButtonPressed = buttonType; + } + + private void ProcessDigitKey( CalculatorButtonType buttonType ) + { + if( _showNewNumber ) + DisplayText = CalculatorUtilities.GetCalculatorButtonContent( buttonType ); + else + DisplayText += CalculatorUtilities.GetCalculatorButtonContent( buttonType ); + + _showNewNumber = false; + } + + private void ProcessMemoryKey( Calculator.CalculatorButtonType buttonType ) + { + decimal currentValue = CalculatorUtilities.ParseDecimal( DisplayText ); + + switch( buttonType ) + { + case Calculator.CalculatorButtonType.MAdd: + Memory += currentValue; + break; + case Calculator.CalculatorButtonType.MC: + Memory = decimal.Zero; + break; + case Calculator.CalculatorButtonType.MR: + DisplayText = Memory.ToString(); + break; + case Calculator.CalculatorButtonType.MS: + Memory = currentValue; + break; + case Calculator.CalculatorButtonType.MSub: + Memory -= currentValue; + break; + default: + break; + } + + _showNewNumber = true; + } + + private void ProcessOperationKey( CalculatorButtonType buttonType ) + { + switch( buttonType ) + { + case CalculatorButtonType.Add: + Calculate( Operation.Add ); + break; + case CalculatorButtonType.Subtract: + Calculate( Operation.Subtract ); + break; + case CalculatorButtonType.Multiply: + Calculate( Operation.Multiply ); + break; + case CalculatorButtonType.Divide: + Calculate( Operation.Divide ); + break; + case CalculatorButtonType.Percent: + if( _lastOperation != Operation.None ) + { + decimal currentValue = CalculatorUtilities.ParseDecimal( DisplayText ); + decimal newValue = CalculatorUtilities.Percent( _previousValue, currentValue ); + DisplayText = newValue.ToString(); + } + else + { + DisplayText = "0"; + _showNewNumber = true; + } + return; + case CalculatorButtonType.Sqrt: + Calculate( Operation.Sqrt, Operation.None ); + break; + case CalculatorButtonType.Fraction: + Calculate( Operation.Fraction, Operation.None ); + break; + case CalculatorButtonType.Negate: + Calculate( Operation.Negate, Operation.None ); + break; + case CalculatorButtonType.Equal: + Calculate( Operation.None ); + break; + case CalculatorButtonType.Clear: + Calculate( Operation.Clear, Operation.None ); + DisplayText = Value.ToString(); + break; + case CalculatorButtonType.Cancel: + DisplayText = _previousValue.ToString(); + _lastOperation = Operation.None; + _showNewNumber = true; + return; + case CalculatorButtonType.Back: + ProcessBackKey(); + return; + default: + break; + } + + Decimal.TryParse( DisplayText, out _previousValue ); + _showNewNumber = true; + } + + private void SimulateCalculatorButtonClick( CalculatorButtonType buttonType ) + { + var button = CalculatorUtilities.FindButtonByCalculatorButtonType( _buttonPanel, buttonType ); + if( button != null ) + { + VisualStateManager.GoToState( button, "Pressed", true ); + DispatcherTimer timer; + if( _timers.ContainsKey( button ) ) + { + timer = _timers[ button ]; + timer.Stop(); + } + else + { + timer = new DispatcherTimer(); + timer.Interval = TimeSpan.FromMilliseconds( 100 ); + timer.Tick += Timer_Tick; + _timers.Add( button, timer ); + } + + timer.Start(); + } + } + + #endregion //Methods + + #region Events + + //Due to a bug in Visual Studio, you cannot create event handlers for nullable args in XAML, so I have to use object instead. + public static readonly RoutedEvent ValueChangedEvent = EventManager.RegisterRoutedEvent( "ValueChanged", RoutingStrategy.Bubble, typeof( RoutedPropertyChangedEventHandler ), typeof( Calculator ) ); + public event RoutedPropertyChangedEventHandler ValueChanged + { + add + { + AddHandler( ValueChangedEvent, value ); + } + remove + { + RemoveHandler( ValueChangedEvent, value ); + } + } + + #endregion //Events + + #region Commands + + private void ExecuteCalculatorButtonClick( object sender, ExecutedRoutedEventArgs e ) + { + var buttonType = ( CalculatorButtonType )e.Parameter; + ProcessCalculatorButton( buttonType ); + } + + #endregion //Commands + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/CalculatorCommands.cs b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/CalculatorCommands.cs new file mode 100644 index 00000000..f5aa6874 --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/CalculatorCommands.cs @@ -0,0 +1,34 @@ +/************************************************************************ + + Extended WPF Toolkit + + Copyright (C) 2010-2012 Xceed Software Inc. + + This program is provided to you under the terms of the Microsoft Reciprocal + License (Ms-RL) as published at http://wpftoolkit.codeplex.com/license + + This program can be provided to you by Xceed Software Inc. under a + proprietary commercial license agreement for use in non-Open Source + projects. The commercial version of Extended WPF Toolkit also includes + priority technical support, commercial updates, and many additional + useful WPF controls if you license Xceed Business Suite for WPF. + + Visit http://xceed.com and follow @datagrid on Twitter. + + **********************************************************************/ +using System.Windows.Input; + +namespace Microsoft.Windows.Controls +{ + public static class CalculatorCommands + { + private static RoutedCommand _calculatorButtonClickCommand = new RoutedCommand(); + public static RoutedCommand CalculatorButtonClick + { + get + { + return _calculatorButtonClickCommand; + } + } + } +} diff --git a/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Themes/Generic.xaml b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Themes/Generic.xaml new file mode 100644 index 00000000..bd37b1dc --- /dev/null +++ b/Release/v1.6.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Themes/Generic.xaml @@ -0,0 +1,518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +