当前位置: 首页>>代码示例>>C#>>正文


C# Windows.FrameworkTemplate类代码示例

本文整理汇总了C#中System.Windows.FrameworkTemplate的典型用法代码示例。如果您正苦于以下问题:C# FrameworkTemplate类的具体用法?C# FrameworkTemplate怎么用?C# FrameworkTemplate使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


FrameworkTemplate类属于System.Windows命名空间,在下文中一共展示了FrameworkTemplate类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: EvaluateOldNewStates

        // Given a multi data trigger and associated context information,
        //  evaluate the old and new states of the trigger.

        // The short-circuit logic of multi property trigger applies here too.
        //  we bail if any of the "other" conditions evaluate to false.
        private static void EvaluateOldNewStates( MultiDataTrigger multiDataTrigger,
            DependencyObject triggerContainer,
            BindingBase binding, BindingValueChangedEventArgs changedArgs, UncommonField<HybridDictionary[]> dataField,
            Style style, FrameworkTemplate frameworkTemplate,
            out bool oldState, out bool newState )
        {
            BindingBase evaluationBinding = null;
            object  evaluationValue = null;
            TriggerCondition[] conditions = multiDataTrigger.TriggerConditions;

            // Set up the default condition: A trigger with no conditions will never evaluate to true.
            oldState = false;
            newState = false;

            for( int i = 0; i < multiDataTrigger.Conditions.Count; i++ )
            {
                evaluationBinding = conditions[i].Binding;

                Debug.Assert( evaluationBinding != null,
                    "A null binding was encountered in a MultiDataTrigger conditions collection - this is invalid input and should have been caught earlier.");

                if( evaluationBinding == binding )
                {
                    // The binding that changed belonged to the current condition.
                    oldState = conditions[i].ConvertAndMatch(changedArgs.OldValue);
                    newState = conditions[i].ConvertAndMatch(changedArgs.NewValue);

                    if( oldState == newState )
                    {
                        // There couldn't possibly be a transition here, abort.  The
                        //  returned values here aren't necessarily the state of the
                        //  triggers, but we only care about a transition today.  If
                        //  we care about actual values, we'll need to continue evaluation.
                        return;
                    }
                }
                else
                {
                    evaluationValue = GetDataTriggerValue(dataField, triggerContainer, evaluationBinding);
                    if( !conditions[i].ConvertAndMatch(evaluationValue) )
                    {
                        // A condition other than the one changed has evaluated to false.
                        // There couldn't possibly be a transition here, short-circuit and abort.
                        oldState = false;
                        newState = false;
                        return;
                    }
                }
            }

            // We should only get this far only if the binding change causes
            //  a true->false (or vice versa) transition in one of the conditions,
            // AND that every other condition evaluated to true.
            return;
        }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:60,代码来源:StyleHelper.cs

示例2: XamlContext

		internal XamlContext (XamlContext parent, List<DependencyObject> resources, FrameworkTemplate template)
		{
			Parent = parent;
			Resources = resources;
			Template = template;

			//
			// Its just not worth the lookup time to try accessing these on the parents, so copy them over.
			//
			DefaultXmlns = parent.DefaultXmlns;
			IgnorableXmlns = new List<string> (parent.IgnorableXmlns);
			Xmlns = new Dictionary<string,string> (parent.Xmlns);
		}
开发者ID:kangaroo,项目名称:moon,代码行数:13,代码来源:XamlContext.cs

示例3: TemplateNameScope

        internal TemplateNameScope(
                                    DependencyObject templatedParent,
                                    List<DependencyObject> affectedChildren,
                                    FrameworkTemplate frameworkTemplate )
        {
            Debug.Assert(templatedParent == null || (templatedParent is FrameworkElement || templatedParent is FrameworkContentElement),
                         "Templates are only supported on FE/FCE containers.");

            _affectedChildren = affectedChildren;

            _frameworkTemplate = frameworkTemplate;

            _templatedParent = templatedParent;

            _isTemplatedParentAnFE = true;

        }
开发者ID:JianwenSun,项目名称:cc,代码行数:17,代码来源:TemplateNameScope.cs

示例4: Dump

 void Dump(FrameworkTemplate template)
 {
     XmlWriterSettings settings = new XmlWriterSettings();
     settings.Indent = true;
     settings.IndentChars = new string(' ', 4);
     settings.NewLineOnAttributes = true;
     StringBuilder strBuild = new StringBuilder();
     XmlWriter xmlWrite = XmlWriter.Create(strBuild, settings);
     try
     {
         XamlWriter.Save(template, xmlWrite);
         txtBox.Text = strBuild.ToString();
     }
     catch (Exception e)
     {
         txtBox.Text = e.Message;
     }
 }
开发者ID:powernick,项目名称:CodeLib,代码行数:18,代码来源:MainWindow.xaml.cs

示例5: ShowTemplate

    void ShowTemplate(System.Windows.Forms.WebBrowser browser, FrameworkTemplate template) {
      if( template == null ) {
        browser.DocumentText = "(no template)";
        return;
      }

      // Write the template to a file so that the browser knows to show it as XML
      string filename = System.IO.Path.GetTempFileName();
      File.Delete(filename);
      filename = System.IO.Path.ChangeExtension(filename, "xml");

      // pretty print the XAML (for View Source)
      using( XmlTextWriter writer = new XmlTextWriter(filename, System.Text.Encoding.UTF8) ) {
        writer.Formatting = Formatting.Indented;
        XamlWriter.Save(template, writer);
      }

      // Show the template
      browser.Navigate(new Uri(@"file:///" + filename));
    }
开发者ID:ssickles,项目名称:archive,代码行数:20,代码来源:Window1.xaml.cs

示例6: OnTemplateChangedInternal

        internal override void OnTemplateChangedInternal(FrameworkTemplate oldTemplate, FrameworkTemplate newTemplate)
        {
            // Invalidate template references
            _toolBarPanel = null;
            _toolBarOverflowPanel = null;

            base.OnTemplateChangedInternal(oldTemplate, newTemplate);
        }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:8,代码来源:ToolBar.cs

示例7: InvokeApplicableDataTriggerActions

        // Given a Style/Template and a Binding whose value has changed, look for
        //  any data triggers that have trigger actions (EnterAction/ExitAction)
        //  and see if any of those actions need to run as a response to this change.
        private static void InvokeApplicableDataTriggerActions(
            Style                               style,
            FrameworkTemplate                   frameworkTemplate,
            DependencyObject                    container,
            BindingBase                         binding,
            BindingValueChangedEventArgs        e,
            UncommonField<HybridDictionary[]>   dataField)
        {
            HybridDictionary dataTriggersWithActions;

            if( style != null )
            {
                dataTriggersWithActions = style.DataTriggersWithActions;
            }
            else if( frameworkTemplate != null )
            {
                dataTriggersWithActions = frameworkTemplate.DataTriggersWithActions;
            }
            else
            {
                dataTriggersWithActions = null;
            }

            if( dataTriggersWithActions != null )
            {
                object candidateTrigger = dataTriggersWithActions[binding];

                if( candidateTrigger != null )
                {
                    // One or more trigger objects need to be evaluated.  The candidateTrigger
                    //  object may be a single trigger or a collection of them.
                    TriggerBase triggerBase = candidateTrigger as TriggerBase;
                    if( triggerBase != null )
                    {
                        InvokeDataTriggerActions( triggerBase, container, binding, e,
                            style, frameworkTemplate, dataField);
                    }
                    else
                    {
                        Debug.Assert(candidateTrigger is List<TriggerBase>, "Internal data structure error: The HybridDictionary [Style/Template].DataTriggersWithActions " +
                            "is expected to hold a single TriggerBase or a List<T> of them.  An object of type " +
                            candidateTrigger.GetType().ToString() + " is not expected.  Where did this object come from?");

                        List<TriggerBase> triggerList = (List<TriggerBase>)candidateTrigger;

                        for( int i = 0; i < triggerList.Count; i++ )
                        {
                            InvokeDataTriggerActions( triggerList[i], container, binding, e,
                                style, frameworkTemplate, dataField);
                        }
                    }
                }
            }
        }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:57,代码来源:StyleHelper.cs

示例8: UpdateTemplateCache

 internal static void UpdateTemplateCache(ContentPresenter contentPresenter, FrameworkTemplate frameworkTemplate1, FrameworkTemplate frameworkTemplate2, DependencyProperty dependencyProperty)
 {
     // throw new NotImplementedException();
 }
开发者ID:evnik,项目名称:UIFramework,代码行数:4,代码来源:StyleHelper.cs

示例9: OnTemplateChangedInternal

 // Internal helper so FrameworkElement could see call the template changed virtual
 internal override void OnTemplateChangedInternal(FrameworkTemplate oldTemplate, FrameworkTemplate newTemplate)
 {
     OnTemplateChanged((ControlTemplate)oldTemplate, (ControlTemplate)newTemplate);
 }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:5,代码来源:Control.cs

示例10: Invoke

 /// <summary>
 /// Invoke the SoundPlayer action.
 /// </summary>
 internal sealed override void Invoke(FrameworkElement el,
                                      FrameworkContentElement ctntEl,
                                      Style targetStyle,
                                      FrameworkTemplate targetTemplate,
                                      Int64 layer)
 {
     PlayWhenLoaded();
 }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:11,代码来源:SoundPlayerAction.cs

示例11: Invoke

 /// <summary>
 ///     Called when all conditions have been satisfied for this action to be
 /// invoked.  (Conditions are not described on this TriggerAction object,
 /// but on the Trigger object holding it.)
 /// </summary>
 /// <remarks>
 ///     This variant is called when the Trigger lives in a Style, and
 /// hence given a reference to its corresponding Style object.
 /// </remarks>
 internal abstract void Invoke( FrameworkElement fe,
                               FrameworkContentElement fce,
                               Style targetStyle,
                               FrameworkTemplate targetTemplate,
                               Int64 layer);
开发者ID:krytht,项目名称:DotNetReferenceSource,代码行数:14,代码来源:TriggerAction.cs

示例12: CreateXamlContext

		private XamlContext CreateXamlContext (FrameworkTemplate template)
		{
			return new XamlContext (Context, TopElement, CreateResourcesList (), template, reader);
		}
开发者ID:dfr0,项目名称:moon,代码行数:4,代码来源:XamlParser.cs

示例13: XamlContext

		internal XamlContext (XamlContext parent, List<DependencyObject> resources, FrameworkTemplate template)
		{
			Parent = parent;
			Resources = resources;
			Template = template;
		}
开发者ID:shana,项目名称:moon,代码行数:6,代码来源:XamlContext.cs

示例14: XamlContext

		internal XamlContext (XamlContext parent, object top_element,
							List<DependencyObject> resources,
							FrameworkTemplate template, XamlNode node)
		{
			Parent = parent;
			TopElement = top_element;
			Resources = resources;
			Template = template;
			Node = node;

			//
			// Its just not worth the lookup time to try accessing these on the parents, so copy them over.
			//
			XmlnsCachedTypes = new Dictionary<XmlNsKey, Type>();
		}
开发者ID:dfr0,项目名称:moon,代码行数:15,代码来源:XamlContext.cs

示例15: ProcessTemplateTriggers

        //
        //  This method
        //  1. Adds shared table entries for property values set via Triggers
        //
        private static void ProcessTemplateTriggers(
            TriggerCollection                                           triggers,
            FrameworkTemplate                                           frameworkTemplate,
            ref FrugalStructList<ChildRecord>                           childRecordFromChildIndex,
            ref FrugalStructList<ItemStructMap<TriggerSourceRecord>>    triggerSourceRecordFromChildIndex,
            ref FrugalStructList<ContainerDependent>                    containerDependents,
            ref FrugalStructList<ChildPropertyDependent>                resourceDependents,
            ref ItemStructList<ChildEventDependent>                     eventDependents,
            ref HybridDictionary                                        dataTriggerRecordFromBinding,
            HybridDictionary                                            childIndexFromChildID,
            ref bool                                                    hasInstanceValues,
            ref HybridDictionary                                        triggerActions,
            FrameworkElementFactory                                     templateRoot,
            ref EventHandlersStore                                      eventHandlersStore,
            ref FrugalMap                                               propertyTriggersWithActions,
            ref HybridDictionary                                        dataTriggersWithActions,
            ref bool                                                    hasLoadedChangeHandler)
        {
            if (triggers != null)
            {
                int triggerCount = triggers.Count;
                for (int i = 0; i < triggerCount; i++)
                {
                    TriggerBase triggerBase = triggers[i];

                    Trigger trigger;
                    MultiTrigger multiTrigger;
                    DataTrigger dataTrigger;
                    MultiDataTrigger multiDataTrigger;
                    EventTrigger eventTrigger;

                    DetermineTriggerType( triggerBase, out trigger, out multiTrigger, out dataTrigger, out multiDataTrigger, out eventTrigger );

                    if ( trigger != null || multiTrigger != null||
                        dataTrigger != null || multiDataTrigger != null )
                    {
                        // Update the SourceChildIndex for each of the conditions for this trigger
                        TriggerCondition[] conditions = triggerBase.TriggerConditions;
                        for (int k=0; k<conditions.Length; k++)
                        {
                            conditions[k].SourceChildIndex = StyleHelper.QueryChildIndexFromChildName(conditions[k].SourceName, childIndexFromChildID);
                        }

                        // Set things up to handle Setter values
                        for (int j = 0; j < triggerBase.PropertyValues.Count; j++)
                        {
                            PropertyValue propertyValue = triggerBase.PropertyValues[j];

                            // Check for trigger rules that act on template children
                            if (propertyValue.ChildName == StyleHelper.SelfName)
                            {
                                // "Self" (container) trigger

                                // Track properties on the container that are being driven by
                                // the Template so that they can be invalidated during Template changes
                                StyleHelper.AddContainerDependent(propertyValue.Property, true /*fromVisualTrigger*/, ref containerDependents);
                            }

                            StyleHelper.UpdateTables(ref propertyValue, ref childRecordFromChildIndex,
                                ref triggerSourceRecordFromChildIndex, ref resourceDependents, ref dataTriggerRecordFromBinding,
                                childIndexFromChildID, ref hasInstanceValues);
                        }

                        // Set things up to handle TriggerActions
                        if( triggerBase.HasEnterActions || triggerBase.HasExitActions )
                        {
                            if( trigger != null )
                            {
                                StyleHelper.AddPropertyTriggerWithAction( triggerBase, trigger.Property, ref propertyTriggersWithActions );
                            }
                            else if( multiTrigger != null )
                            {
                                for( int k = 0; k < multiTrigger.Conditions.Count; k++ )
                                {
                                    Condition triggerCondition = multiTrigger.Conditions[k];

                                    StyleHelper.AddPropertyTriggerWithAction( triggerBase, triggerCondition.Property, ref propertyTriggersWithActions );
                                }
                            }
                            else if( dataTrigger != null )
                            {
                                StyleHelper.AddDataTriggerWithAction( triggerBase, dataTrigger.Binding, ref dataTriggersWithActions );
                            }
                            else if( multiDataTrigger != null )
                            {
                                for( int k = 0; k < multiDataTrigger.Conditions.Count; k++ )
                                {
                                    Condition dataCondition = multiDataTrigger.Conditions[k];

                                    StyleHelper.AddDataTriggerWithAction( triggerBase, dataCondition.Binding, ref dataTriggersWithActions );
                                }
                            }
                            else
                            {
                                throw new InvalidOperationException(SR.Get(SRID.UnsupportedTriggerInTemplate, triggerBase.GetType().Name));
                            }
//.........这里部分代码省略.........
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:101,代码来源:StyleHelper.cs


注:本文中的System.Windows.FrameworkTemplate类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。