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
- PropertyNames.cs
- ItemsPresenter.cs
- DbgUtil.cs
- WmpBitmapDecoder.cs
- SessionSwitchEventArgs.cs
- TypeDescriptor.cs
- ChannelManager.cs
- EpmHelper.cs
- HttpHeaderCollection.cs
- IPAddress.cs
- MultiView.cs
- HttpContextWrapper.cs
- WorkflowMarkupElementEventArgs.cs
- X509Certificate.cs
- UnsignedPublishLicense.cs
- StringValueSerializer.cs
- EventNotify.cs
- StringConverter.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- AnimationClockResource.cs
- DesignerVerbCollection.cs
- FileCodeGroup.cs
- categoryentry.cs
- HttpRuntime.cs
- ConfigurationStrings.cs
- UpdateTracker.cs
- XmlObjectSerializerContext.cs
- DataKey.cs
- WeakReference.cs
- PhonemeConverter.cs
- RemoveFromCollection.cs
- SqlInternalConnection.cs
- KeyboardNavigation.cs
- PaginationProgressEventArgs.cs
- GeneralTransformGroup.cs
- DelegatingTypeDescriptionProvider.cs
- BitArray.cs
- Column.cs
- InstallerTypeAttribute.cs
- ListControl.cs
- WebScriptClientGenerator.cs
- XsltException.cs
- Msec.cs
- DataGridViewCellFormattingEventArgs.cs
- PolyBezierSegment.cs
- LassoSelectionBehavior.cs
- SapiInterop.cs
- TemplateBuilder.cs
- DispatcherHookEventArgs.cs
- ToolboxBitmapAttribute.cs
- UInt16Storage.cs
- FreezableOperations.cs
- DebugManager.cs
- ColumnMapProcessor.cs
- ConfigurationStrings.cs
- DeviceContexts.cs
- WebPartDescription.cs
- SHA256Managed.cs
- TraceHandler.cs
- Variant.cs
- PermissionSet.cs
- XamlSerializer.cs
- WeakKeyDictionary.cs
- ISAPIApplicationHost.cs
- DateTimeStorage.cs
- SchemeSettingElementCollection.cs
- MetaDataInfo.cs
- DesigntimeLicenseContextSerializer.cs
- ControlBindingsConverter.cs
- XsltLibrary.cs
- InputMethod.cs
- CollaborationHelperFunctions.cs
- AsyncPostBackTrigger.cs
- DoubleCollectionValueSerializer.cs
- StylusPlugInCollection.cs
- TagMapInfo.cs
- ChannelRequirements.cs
- CatalogZoneDesigner.cs
- UrlMappingCollection.cs
- DesignerLoader.cs
- ClientRolePrincipal.cs
- ValidationRule.cs
- CurrencyWrapper.cs
- SettingsPropertyWrongTypeException.cs
- DocumentAutomationPeer.cs
- RuleSettingsCollection.cs
- FunctionMappingTranslator.cs
- BreakRecordTable.cs
- Label.cs
- PreviewPrintController.cs
- FastEncoderWindow.cs
- sqlcontext.cs
- HttpListener.cs
- WpfGeneratedKnownProperties.cs
- BrowserCapabilitiesCodeGenerator.cs
- Triangle.cs
- SQLCharsStorage.cs
- DescendentsWalker.cs
- EllipticalNodeOperations.cs
- SystemIPGlobalProperties.cs