Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / DialogWindow.cs / 1407647 / DialogWindow.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation { using System.Windows; using System.Activities.Presentation.View; using System.Windows.Interop; using System.Windows.Input; using System.ComponentModel; internal class DialogWindow : Window { public static readonly DependencyProperty ContextProperty = DependencyProperty.Register("Context", typeof(EditingContext), typeof(DialogWindow)); string helpKeyword = HelpKeywords.HomePage; public EditingContext Context { get { return (EditingContext)GetValue(ContextProperty); } set { SetValue(ContextProperty, value); } } protected string HelpKeyword { get { return this.helpKeyword; } set { this.helpKeyword = value; } } protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e); this.HideMinMaxButton(); this.ShowContextHelpButton(); this.HideIcon(); this.AddWindowsHook(OnHookedWindowMessage); this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Help, new ExecutedRoutedEventHandler(OnHelpExecuted))); this.Closing += new CancelEventHandler(OnWindowClosing); } static IntPtr OnHookedWindowMessage(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { if (msg == Win32Interop.WM_SYSCOMMAND && wParam.ToInt64() == (long)Win32Interop.SC_CONTEXTHELP) { var rootVisual = HwndSource.FromHwnd(hwnd).RootVisual; var focusedElement = FocusManager.GetFocusedElement(rootVisual); if (focusedElement == null) { focusedElement = rootVisual as IInputElement; } ApplicationCommands.Help.Execute(null, focusedElement); handled = true; } // According to MSDN, zero should be returned after handling WM_SYSCOMMAND. // If this message is unhandled, it's still safe to return zero // because WPF framework (HwndSource) will return zero anyway if the // message is unhandled. return IntPtr.Zero; } void OnWindowClosing(object sender, CancelEventArgs e) { // Note: Do NOT remove the hook if the close operation needs to be canceled. this.RemoveWindowsHook(OnHookedWindowMessage); } void OnHelpExecuted(Object sender, ExecutedRoutedEventArgs e) { if (this.Context != null) { IIntegratedHelpService help = this.Context.Services.GetService(); if (help != null) { help.ShowHelpFromKeyword(this.helpKeyword); return; } } System.Diagnostics.Process.Start(SR.DefaultHelpUrl); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DbProviderSpecificTypePropertyAttribute.cs
- ProcessThreadCollection.cs
- MessageDecoder.cs
- RemoteCryptoRsaServiceProvider.cs
- StylusPointCollection.cs
- InlinedAggregationOperatorEnumerator.cs
- JournalEntryListConverter.cs
- JournalEntry.cs
- X509IssuerSerialKeyIdentifierClause.cs
- BuildProvider.cs
- CodeDomSerializerBase.cs
- Base64Encoding.cs
- RegexCompiler.cs
- ExplicitDiscriminatorMap.cs
- FixedSOMLineCollection.cs
- PipelineModuleStepContainer.cs
- RoleManagerSection.cs
- MatrixCamera.cs
- InstanceOwner.cs
- TransactionTraceIdentifier.cs
- CodeNamespaceImport.cs
- ProxyGenerator.cs
- ApplicationCommands.cs
- ControlParameter.cs
- Error.cs
- InvalidProgramException.cs
- BlockUIContainer.cs
- HotCommands.cs
- ControlEvent.cs
- ConnectorDragDropGlyph.cs
- ClientOptions.cs
- BitmapEffectGroup.cs
- SafeHandles.cs
- ProtectedConfigurationSection.cs
- AuthorizationRule.cs
- QilGeneratorEnv.cs
- HttpResponseInternalBase.cs
- AttachmentService.cs
- ImageSource.cs
- OrderedDictionary.cs
- XmlSerializerVersionAttribute.cs
- NameScopePropertyAttribute.cs
- ColumnReorderedEventArgs.cs
- CodeConstructor.cs
- ExpressionTable.cs
- SqlConnectionPoolProviderInfo.cs
- MatrixCamera.cs
- DataControlFieldHeaderCell.cs
- PathStreamGeometryContext.cs
- FontStretch.cs
- SQLSingle.cs
- CodeEntryPointMethod.cs
- StateManager.cs
- ManipulationDeltaEventArgs.cs
- XdrBuilder.cs
- SqlGatherConsumedAliases.cs
- ConvertEvent.cs
- MeasureItemEvent.cs
- ContentDesigner.cs
- BindingSource.cs
- OraclePermissionAttribute.cs
- NativeMethods.cs
- UnsafeNativeMethods.cs
- Switch.cs
- DPCustomTypeDescriptor.cs
- EntitySetRetriever.cs
- TrackBarRenderer.cs
- PostBackOptions.cs
- SqlBooleanizer.cs
- TokenBasedSetEnumerator.cs
- ScrollBar.cs
- UnsafeNativeMethods.cs
- TableSectionStyle.cs
- PointConverter.cs
- Version.cs
- Knowncolors.cs
- CaseCqlBlock.cs
- BaseCollection.cs
- GeometryCombineModeValidation.cs
- ColumnTypeConverter.cs
- ThreadSafeMessageFilterTable.cs
- SafeNativeMethods.cs
- RefreshPropertiesAttribute.cs
- DbProviderFactory.cs
- IriParsingElement.cs
- UnicodeEncoding.cs
- CodeComment.cs
- ParameterToken.cs
- DesignerSerializerAttribute.cs
- RegexRunner.cs
- CompilationLock.cs
- ApplicationCommands.cs
- NavigationEventArgs.cs
- CodeAccessPermission.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- RenderTargetBitmap.cs
- EventLogEntry.cs
- HttpTransportSecurity.cs
- ActivityMarkupSerializationProvider.cs
- BoolLiteral.cs