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
- GZipStream.cs
- BitStack.cs
- TreeChangeInfo.cs
- PrintEvent.cs
- CommandDesigner.cs
- LinkUtilities.cs
- StateMachineSubscriptionManager.cs
- MouseWheelEventArgs.cs
- TypeTypeConverter.cs
- XPathScanner.cs
- PingReply.cs
- Oid.cs
- XmlSortKey.cs
- CaseStatementSlot.cs
- CompositeScriptReferenceEventArgs.cs
- MulticastOption.cs
- TypeUtil.cs
- ActivitiesCollection.cs
- XamlParser.cs
- TempFiles.cs
- Viewport3DVisual.cs
- ScrollEventArgs.cs
- tooltip.cs
- TabControl.cs
- SafeRegistryHandle.cs
- WebPartConnectVerb.cs
- SetIndexBinder.cs
- RolePrincipal.cs
- DbConnectionPoolCounters.cs
- Comparer.cs
- XmlCodeExporter.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- GenericUI.cs
- SemanticAnalyzer.cs
- ConfigXmlCDataSection.cs
- localization.cs
- FilterElement.cs
- MailMessage.cs
- WindowsRegion.cs
- SolidColorBrush.cs
- AttributeProviderAttribute.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- RC2CryptoServiceProvider.cs
- CapabilitiesUse.cs
- RowBinding.cs
- ExpressionBuilderCollection.cs
- GiveFeedbackEvent.cs
- Int16AnimationUsingKeyFrames.cs
- SessionStateSection.cs
- SqlRecordBuffer.cs
- ListViewInsertedEventArgs.cs
- BasicCommandTreeVisitor.cs
- GACIdentityPermission.cs
- Point3DCollectionConverter.cs
- SamlEvidence.cs
- DataGridViewCellValidatingEventArgs.cs
- Mutex.cs
- SafeCryptoKeyHandle.cs
- AsyncResult.cs
- MatrixConverter.cs
- EditorZoneBase.cs
- PropertyOrder.cs
- figurelengthconverter.cs
- UnsafeNativeMethods.cs
- TrackingStringDictionary.cs
- NetworkCredential.cs
- QueryReaderSettings.cs
- WorkflowMessageEventHandler.cs
- ConsoleTraceListener.cs
- EventLogPermissionAttribute.cs
- MouseGesture.cs
- AncestorChangedEventArgs.cs
- CodeExporter.cs
- CompiledXpathExpr.cs
- TextParaClient.cs
- AttachedAnnotationChangedEventArgs.cs
- diagnosticsswitches.cs
- FontNamesConverter.cs
- Evaluator.cs
- WebPartExportVerb.cs
- XPathMessageContext.cs
- DataGridViewColumnTypeEditor.cs
- WindowsNonControl.cs
- SamlAuthenticationClaimResource.cs
- XsltInput.cs
- StylusPointProperties.cs
- TableParagraph.cs
- SecUtil.cs
- ActivityPreviewDesigner.cs
- AspNetHostingPermission.cs
- DropTarget.cs
- AddInBase.cs
- RequestChannelBinder.cs
- DbConnectionPool.cs
- WS2007HttpBindingCollectionElement.cs
- MonitorWrapper.cs
- AsyncResult.cs
- XmlQueryRuntime.cs
- ProfileGroupSettingsCollection.cs
- SupportsEventValidationAttribute.cs