diff --git a/WPFSamples.sln b/WPFSamples.sln index 14ca8d6cf..5bd2e21d6 100644 --- a/WPFSamples.sln +++ b/WPFSamples.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.28927.53 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.33711.374 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sample Applications", "Sample Applications", "{122369C4-906B-4398-9F7D-DA33916262CF}" EndProject @@ -519,6 +519,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SpellChecking", "Documents\ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CustomDictionaries", "Documents\Spell Checking\CustomDictionaries\CustomDictionaries.csproj", "{CF0B6854-6CA8-4BAC-AF72-E97AE1E54593}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommonDialogs", "Windows\CommonDialog\CommonDialogs.csproj", "{41E866EB-A376-47B0-AADA-FC59ACE90A69}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -3858,6 +3860,22 @@ Global {CF0B6854-6CA8-4BAC-AF72-E97AE1E54593}.Release|x64.Build.0 = Release|Any CPU {CF0B6854-6CA8-4BAC-AF72-E97AE1E54593}.Release|x86.ActiveCfg = Release|Any CPU {CF0B6854-6CA8-4BAC-AF72-E97AE1E54593}.Release|x86.Build.0 = Release|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Debug|ARM64.Build.0 = Debug|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Debug|x64.ActiveCfg = Debug|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Debug|x64.Build.0 = Debug|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Debug|x86.ActiveCfg = Debug|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Debug|x86.Build.0 = Debug|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Release|Any CPU.Build.0 = Release|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Release|ARM64.ActiveCfg = Release|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Release|ARM64.Build.0 = Release|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Release|x64.ActiveCfg = Release|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Release|x64.Build.0 = Release|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Release|x86.ActiveCfg = Release|Any CPU + {41E866EB-A376-47B0-AADA-FC59ACE90A69}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4113,6 +4131,7 @@ Global {8B9A2506-290B-4E20-ABA9-05A89F020809} = {F9BFF0BB-9124-49AE-8482-32A126D58AD2} {74949E7C-71B0-4E03-8EC3-7CCA9E01397D} = {8B9A2506-290B-4E20-ABA9-05A89F020809} {CF0B6854-6CA8-4BAC-AF72-E97AE1E54593} = {8B9A2506-290B-4E20-ABA9-05A89F020809} + {41E866EB-A376-47B0-AADA-FC59ACE90A69} = {168E363A-7B91-4FBF-A393-28BD29C818DA} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {5999CD15-1B95-49B3-AD12-5FDC10B2FBAD} diff --git a/Windows/CommonDialog/App.xaml b/Windows/CommonDialog/App.xaml new file mode 100644 index 000000000..bafb5877e --- /dev/null +++ b/Windows/CommonDialog/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/Windows/CommonDialog/App.xaml.cs b/Windows/CommonDialog/App.xaml.cs new file mode 100644 index 000000000..b3f2a9644 --- /dev/null +++ b/Windows/CommonDialog/App.xaml.cs @@ -0,0 +1,13 @@ +using System.Configuration; +using System.Data; +using System.Windows; + +namespace CommonDialog +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} \ No newline at end of file diff --git a/Windows/CommonDialog/AssemblyInfo.cs b/Windows/CommonDialog/AssemblyInfo.cs new file mode 100644 index 000000000..b0ec82757 --- /dev/null +++ b/Windows/CommonDialog/AssemblyInfo.cs @@ -0,0 +1,10 @@ +using System.Windows; + +[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) +)] diff --git a/Windows/CommonDialog/CommonDialogs.csproj b/Windows/CommonDialog/CommonDialogs.csproj new file mode 100644 index 000000000..93ef07b19 --- /dev/null +++ b/Windows/CommonDialog/CommonDialogs.csproj @@ -0,0 +1,70 @@ + + + net8.0-windows + enable + enable + false + true + + + Debug + AnyCPU + {F1A89776-516D-4196-9E4F-1F92090E8D5B} + WinExe + Properties + CommonDialogs + CommonDialogs + 512 + 4 + true + + + AnyCPU + true + portable + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + + MainWindow.xaml + Code + + + + + + + + diff --git a/Windows/CommonDialog/DialogDataModel.cs b/Windows/CommonDialog/DialogDataModel.cs new file mode 100644 index 000000000..8e26454c9 --- /dev/null +++ b/Windows/CommonDialog/DialogDataModel.cs @@ -0,0 +1,64 @@ +using System.ComponentModel; + +namespace CommonDialogs +{ + class DialogDataModel : INotifyPropertyChanged + { + # region Data Fields and Properties + + private string resultTitle = ""; + private string resultBody = ""; + private string dialogDescription = ""; + private string clickOperationDescription = ""; + + public string ResultTitle + { + get => resultTitle; + set + { + resultTitle = value; + OnPropertyChanged(nameof(ResultTitle)); + } + } + + public string ResultBody + { + get => resultBody; + set + { + resultBody = value; + OnPropertyChanged(nameof(ResultBody)); + } + } + + public string DialogDescription + { + get => dialogDescription; + set + { + dialogDescription = value; + OnPropertyChanged(nameof(DialogDescription)); + } + } + + public string ClickOperationDescription + { + get => clickOperationDescription; + set + { + clickOperationDescription = value; + OnPropertyChanged(nameof(ClickOperationDescription)); + } + } + + #endregion + + private void OnPropertyChanged(string v) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(v)); + } + + public event PropertyChangedEventHandler? PropertyChanged; + + } +} diff --git a/Windows/CommonDialog/MainWindow.xaml b/Windows/CommonDialog/MainWindow.xaml new file mode 100644 index 000000000..fd87d3637 --- /dev/null +++ b/Windows/CommonDialog/MainWindow.xaml @@ -0,0 +1,65 @@ + + + + + + + + + + + WPF Dialogs Sample + + + + + + + + + + + + + + + +