Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Core.Presentation / System / Activities / Core / Presentation / CaseDesigner.xaml.cs / 1305376 / CaseDesigner.xaml.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Core.Presentation { using System.Activities.Presentation; using System.Activities.Presentation.View; using System.Activities.Presentation.Metadata; using System.Activities.Presentation.Model; using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Input; using System.Windows.Threading; partial class CaseDesigner { public CaseDesigner() { this.InitializeComponent(); this.Loaded += (sender, e) => { Selection selection = this.Context.Items.GetValue(); if (selection != null) { ModelItem primarySelection = selection.PrimarySelection; this.ExpandState = SwitchDesigner.IsDescendantOfCase(this.ModelItem, primarySelection); if (this.ExpandState) { // If current focus is at another part, we need to focus this designer // to trigger selection changed, then this part will expand and another // expanded part will collapse. Then we focus on the activity it contains // if there is one. Keyboard.Focus((IInputElement)this.ModelItem.View); if (primarySelection.View != null && this.ModelItem != primarySelection) { Keyboard.Focus((IInputElement)primarySelection.View); } } } }; } // When the CaseDesigner is collapsed, its CaseKeyBox will be disabled. Thus CaseKeyBox.RegainFocus() doesn't // work in such situation, we must re-focus the CaseDesigner to expand it first to re-enable the CaseKeyBox. // This situation happens when inputting and invalid case key value and clicking on another Case or Default in // the same parent SwitchDesigner. public Action FocusSelf { get { return (ckb) => { Keyboard.Focus((IInputElement)this); }; } } public static void RegisterMetadata(AttributeTableBuilder builder) { Type type = typeof(ModelItemKeyValuePair<,>); builder.AddCustomAttributes(type, new DesignerAttribute(typeof(CaseDesigner))); builder.AddCustomAttributes(type, type.GetProperty("Value"), BrowsableAttribute.No); builder.AddCustomAttributes(type, new ActivityDesignerOptionsAttribute { AllowDrillIn = false }); } void AttachDisplayName() { AttachedPropertiesService attachedPropertiesService = this.Context.Services.GetService (); Fx.Assert(attachedPropertiesService != null, "AttachedPropertiesService is not available."); Type modelItemType = this.ModelItem.ItemType; foreach (AttachedProperty property in attachedPropertiesService.GetAttachedProperties(modelItemType)) { if (property.Name == "DisplayName" && property.OwnerType == modelItemType) { return; } } AttachedProperty displayNameProperty = new AttachedProperty { Name = "DisplayName", OwnerType = modelItemType, Getter = (modelItem) => { return "Case"; } }; attachedPropertiesService.AddProperty(displayNameProperty); } protected override void OnModelItemChanged(object newItem) { base.OnModelItemChanged(newItem); this.AttachDisplayName(); } protected override void OnMouseDown(MouseButtonEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed && e.ClickCount == 2) { SwitchTryCatchDesignerHelper.MakeParentRootDesigner (this); e.Handled = true; } else if (e.LeftButton == MouseButtonState.Pressed) { Keyboard.Focus(this); e.Handled = true; } else if (e.RightButton == MouseButtonState.Pressed) { if (this.ShowExpanded) { Keyboard.Focus(this); } e.Handled = true; } } protected override void OnMouseUp(MouseButtonEventArgs e) { // avoid context menu upon right-click when it's collapsed if (!this.ShowExpanded && e.RightButton == MouseButtonState.Released) { e.Handled = true; } } } } // 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
- PageVisual.cs
- AutomationEventArgs.cs
- RawUIStateInputReport.cs
- Scheduling.cs
- HttpStaticObjectsCollectionWrapper.cs
- Model3D.cs
- Base64Encoder.cs
- SqlUserDefinedAggregateAttribute.cs
- Domain.cs
- HttpsTransportElement.cs
- TreeNodeBindingCollection.cs
- ClientScriptManager.cs
- WebPartPersonalization.cs
- TypeNameConverter.cs
- HttpCookieCollection.cs
- BaseResourcesBuildProvider.cs
- TransformerInfoCollection.cs
- BitmapDecoder.cs
- WebDescriptionAttribute.cs
- DateTime.cs
- Facet.cs
- MimeTypeMapper.cs
- _UncName.cs
- EndPoint.cs
- ButtonColumn.cs
- assertwrapper.cs
- TrackBar.cs
- PersonalizationProvider.cs
- SqlClientFactory.cs
- SqlBinder.cs
- AspNetHostingPermission.cs
- GridViewPageEventArgs.cs
- MessageFilterException.cs
- CacheEntry.cs
- UpDownBase.cs
- EntityUtil.cs
- KeyEventArgs.cs
- ManipulationDelta.cs
- PackWebResponse.cs
- unitconverter.cs
- DataGridCaption.cs
- HiddenField.cs
- DataExpression.cs
- QueryStringParameter.cs
- DataControlImageButton.cs
- PropertyMapper.cs
- BaseHashHelper.cs
- ResourceReferenceExpression.cs
- DesignerVerb.cs
- BmpBitmapDecoder.cs
- DataGridItem.cs
- EntityClassGenerator.cs
- ScopelessEnumAttribute.cs
- CryptoHelper.cs
- InputScopeAttribute.cs
- MaterialGroup.cs
- EventLogEntryCollection.cs
- HttpClientChannel.cs
- PhoneCall.cs
- IconConverter.cs
- DataGridSortCommandEventArgs.cs
- WizardForm.cs
- LayoutEvent.cs
- RawStylusSystemGestureInputReport.cs
- WsdlParser.cs
- UriTemplateEquivalenceComparer.cs
- ConfigXmlComment.cs
- CommandConverter.cs
- SelectionRange.cs
- MouseEventArgs.cs
- ChangeDirector.cs
- NavigationProperty.cs
- AddInAdapter.cs
- WebScriptMetadataFormatter.cs
- XmlEncodedRawTextWriter.cs
- FunctionUpdateCommand.cs
- QuestionEventArgs.cs
- RecognizeCompletedEventArgs.cs
- XmlNavigatorStack.cs
- DocumentScope.cs
- EventLogEntryCollection.cs
- FillBehavior.cs
- RegexParser.cs
- MsmqAppDomainProtocolHandler.cs
- PtsPage.cs
- LabelAutomationPeer.cs
- Typeface.cs
- StringOutput.cs
- ObjectAnimationUsingKeyFrames.cs
- EventProviderWriter.cs
- FrameworkElementFactoryMarkupObject.cs
- ListSortDescription.cs
- ContextProperty.cs
- Brush.cs
- EventLogPermissionEntryCollection.cs
- RouteValueExpressionBuilder.cs
- StackOverflowException.cs
- XmlUrlEditor.cs
- NavigationExpr.cs
- LiteralControl.cs