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
- TableMethodGenerator.cs
- ReachVisualSerializerAsync.cs
- DialogDivider.cs
- DbConnectionClosed.cs
- IdentityHolder.cs
- ControlDesigner.cs
- IndexingContentUnit.cs
- WindowsScroll.cs
- __FastResourceComparer.cs
- CodeAssignStatement.cs
- SqlCommandSet.cs
- NativeMethods.cs
- WindowCollection.cs
- EntityType.cs
- ExpressionBuilderCollection.cs
- SystemColors.cs
- EventRouteFactory.cs
- _PooledStream.cs
- SemanticResolver.cs
- SmtpAuthenticationManager.cs
- FontNamesConverter.cs
- WebPartTracker.cs
- CSharpCodeProvider.cs
- Token.cs
- QilGenerator.cs
- InitializationEventAttribute.cs
- AttachmentCollection.cs
- Faults.cs
- MobilePage.cs
- ProviderException.cs
- KeyNotFoundException.cs
- Expression.cs
- ConfigPathUtility.cs
- WebPartConnectionsDisconnectVerb.cs
- HScrollProperties.cs
- HandleCollector.cs
- FacetValueContainer.cs
- StringDictionaryEditor.cs
- InputElement.cs
- Base64Decoder.cs
- GetCardDetailsRequest.cs
- ObjectAssociationEndMapping.cs
- XslException.cs
- WmlLinkAdapter.cs
- ResXResourceWriter.cs
- parserscommon.cs
- ObjectDataProvider.cs
- assemblycache.cs
- CompressedStack.cs
- PropertyPushdownHelper.cs
- EventItfInfo.cs
- ToolStripSystemRenderer.cs
- BuildResult.cs
- base64Transforms.cs
- ToolstripProfessionalRenderer.cs
- HostProtectionException.cs
- dtdvalidator.cs
- ProcessInfo.cs
- TransformCryptoHandle.cs
- BypassElementCollection.cs
- NoneExcludedImageIndexConverter.cs
- ControlPropertyNameConverter.cs
- CqlWriter.cs
- VideoDrawing.cs
- XmlNavigatorFilter.cs
- CodeCastExpression.cs
- PageContent.cs
- BitmapSource.cs
- SafeEventHandle.cs
- ViewStateChangedEventArgs.cs
- ValueTypeFixupInfo.cs
- Operator.cs
- ConfigDefinitionUpdates.cs
- MessageLogger.cs
- HtmlTextBoxAdapter.cs
- PackagePart.cs
- PropertyChangingEventArgs.cs
- Rotation3D.cs
- DateTime.cs
- InternalPermissions.cs
- TempFiles.cs
- TemplateParser.cs
- NodeInfo.cs
- ServiceInfo.cs
- GenericWebPart.cs
- XmlDataSourceNodeDescriptor.cs
- ObjectQueryState.cs
- UserNameSecurityToken.cs
- CssTextWriter.cs
- PrePostDescendentsWalker.cs
- ADMembershipUser.cs
- FrameworkElementAutomationPeer.cs
- TTSEngineProxy.cs
- SpecialNameAttribute.cs
- ScrollBarAutomationPeer.cs
- XmlName.cs
- PointHitTestResult.cs
- NativeMethods.cs
- DataGridViewCellFormattingEventArgs.cs
- DbgUtil.cs