/// <summary>
        /// Builds the visual tree for the <see cref="FloatingWindowHost" /> control
        /// when a new template is applied.
        /// </summary>
        public override void OnApplyTemplate()
        {
            UnsubscribeFromEvents();
            UnsubscribeFromTemplatePartEvents();

            base.OnApplyTemplate();

            root             = GetTemplatePart <Grid>(PART_Root);
            contentRoot      = GetTemplatePart <FrameworkElement>(PART_ContentRoot);
            hostCanvas       = GetTemplatePart <Canvas>(PART_HostCanvas);
            modalCanvas      = GetTemplatePart <Canvas>(PART_ModalCanvas);
            iconBarContainer = GetTemplatePart <FrameworkElement>(PART_IconBarContainer);
            overlay          = GetTemplatePart <Grid>(PART_Overlay);
            iconBar          = GetTemplatePart <IconBar>(PART_IconBar);
            bottomBar        = GetTemplatePart <FrameworkElement>(PART_BottomBar);
            bootstrapButton  = GetTemplatePart <BootstrapButton>(PART_BootstrapButton);
            barContent       = GetTemplatePart <ContentControl>(PART_BarContent);

            iconBar.FloatingWindowHost = this;

            SetStyles();
            SubscribeToTemplatePartEvents();
            SubscribeToEvents();

            templateIsApplied = true;
        }
Example #2
0
        /// <summary>
        /// IconBarStyle PropertyChangedCallback call back static function.
        /// </summary>
        /// <param name="d">IconBar object whose IconBarStyle property is changed.</param>
        /// <param name="e">The <see cref="System.Windows.DependencyPropertyChangedEventArgs"/> instance containing the event data.</param>
        private static void IconBarStylePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            IconBar iconBar = (IconBar)d;

            if (iconBar != null && iconBar.fixedBar != null)
            {
                iconBar.fixedBar.Style = e.NewValue as Style;
            }
        }