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
- SortedList.cs
- StructuralObject.cs
- ProcessHostConfigUtils.cs
- ShaderRenderModeValidation.cs
- InvalidCastException.cs
- StreamAsIStream.cs
- StrongNameKeyPair.cs
- ProgressBarRenderer.cs
- OwnerDrawPropertyBag.cs
- XamlClipboardData.cs
- TypeConverterHelper.cs
- WsiProfilesElementCollection.cs
- _Events.cs
- PostBackOptions.cs
- ProfileSettings.cs
- ButtonField.cs
- PowerModeChangedEventArgs.cs
- ResXResourceSet.cs
- AutomationPeer.cs
- DirectoryLocalQuery.cs
- SmtpClient.cs
- ContentPlaceHolder.cs
- DetailsViewDeletedEventArgs.cs
- ResourcesChangeInfo.cs
- SafeNativeMethods.cs
- StylusTip.cs
- ScrollChrome.cs
- MarkedHighlightComponent.cs
- StaticExtension.cs
- ToolBar.cs
- AsymmetricAlgorithm.cs
- GridEntryCollection.cs
- SqlNodeAnnotations.cs
- Attribute.cs
- Variable.cs
- XmlUtil.cs
- SafeEventLogReadHandle.cs
- ProcessingInstructionAction.cs
- AuthenticationModuleElementCollection.cs
- DataGridHyperlinkColumn.cs
- SpecularMaterial.cs
- IgnoreFileBuildProvider.cs
- SQLSingle.cs
- ManagementClass.cs
- CompilerResults.cs
- PathSegmentCollection.cs
- MarkupObject.cs
- ProcessHostFactoryHelper.cs
- ConfigsHelper.cs
- InternalMappingException.cs
- Int32Animation.cs
- SecureUICommand.cs
- FixedTextView.cs
- XmlSchemaInfo.cs
- XmlDocumentFieldSchema.cs
- SHA384Managed.cs
- TextBoxRenderer.cs
- CompositeFontFamily.cs
- SortQuery.cs
- PropVariant.cs
- OledbConnectionStringbuilder.cs
- StackOverflowException.cs
- HMACMD5.cs
- SafeTimerHandle.cs
- UnsafeNativeMethodsTablet.cs
- WebPartVerb.cs
- BaseTreeIterator.cs
- AccessViolationException.cs
- Configuration.cs
- DecoderExceptionFallback.cs
- PartitionedDataSource.cs
- SqlFormatter.cs
- FormatSettings.cs
- DmlSqlGenerator.cs
- AsymmetricKeyExchangeFormatter.cs
- StylusCaptureWithinProperty.cs
- SqlCommandBuilder.cs
- ExtensionCollection.cs
- EntityViewGenerationAttribute.cs
- BitmapImage.cs
- Canonicalizers.cs
- AutomationProperty.cs
- GlyphRunDrawing.cs
- BatchParser.cs
- CodeAssignStatement.cs
- AttachedAnnotation.cs
- ViewCellRelation.cs
- PathSegmentCollection.cs
- ObjectDataSourceMethodEventArgs.cs
- ResourcePool.cs
- SystemResourceHost.cs
- CaretElement.cs
- DoubleLinkList.cs
- NopReturnReader.cs
- Visual.cs
- PreviewControlDesigner.cs
- FrameworkElementAutomationPeer.cs
- HostedNamedPipeTransportManager.cs
- QueryHandler.cs
- SerializationFieldInfo.cs