public static HorizontalAlign ToEto(this sw.TextAlignment align) { switch (align) { case sw.TextAlignment.Left: return(HorizontalAlign.Left); case sw.TextAlignment.Right: return(HorizontalAlign.Right); case sw.TextAlignment.Center: return(HorizontalAlign.Center); default: throw new NotSupportedException(); } }
public static SharpDX.DirectWrite.TextAlignment ToSharpDX(this Jupiter.TextAlignment alignment) { switch (alignment) { case Jupiter.TextAlignment.Center: return(SharpDX.DirectWrite.TextAlignment.Center); case Jupiter.TextAlignment.Right: return(SharpDX.DirectWrite.TextAlignment.Trailing); case Jupiter.TextAlignment.Justify: return(SharpDX.DirectWrite.TextAlignment.Justified); case Jupiter.TextAlignment.Left: return(SharpDX.DirectWrite.TextAlignment.Leading); default: throw new NotSupportedException("Unexpected TextAlignment value - not available in Windows 8 RTM."); } }
void UpdateBarIcons() { if (Control == null || Element == null) { return; } if (!Element.IsSet(Specifics.HeaderIconsEnabledProperty)) { return; } bool headerIconsEnabled = Element.OnThisPlatform().GetHeaderIconsEnabled(); bool invalidateMeasure = false; // Get all stack panels affected by update. var stackPanels = Control.GetDescendantsByName <WStackPanel>(TabBarHeaderStackPanelName); foreach (var stackPanel in stackPanels) { int stackPanelChildCount = stackPanel.Children.Count; for (int i = 0; i < stackPanelChildCount; i++) { var stackPanelItem = stackPanel.Children[i]; if (stackPanelItem is WImage tabBarImage) { // Update icon image. if (tabBarImage.GetValue(FrameworkElement.NameProperty).ToString() == TabBarHeaderImageName) { if (headerIconsEnabled) { if (Element.IsSet(Specifics.HeaderIconsSizeProperty)) { Size iconSize = Element.OnThisPlatform().GetHeaderIconsSize(); tabBarImage.Height = iconSize.Height; tabBarImage.Width = iconSize.Width; } tabBarImage.HorizontalAlignment = WHorizontalAlignment.Center; tabBarImage.Visibility = WVisibility.Visible; } else { tabBarImage.Visibility = WVisibility.Collapsed; } invalidateMeasure = true; } } else if (stackPanelItem is WTextBlock tabBarTextblock) { // Update text block. if (tabBarTextblock.GetValue(FrameworkElement.NameProperty).ToString() == TabBarHeaderTextBlockName) { if (headerIconsEnabled) { // Remember old values so we can restore them if icons are collapsed. // NOTE, since all Textblock instances in this stack panel comes from the same // style, we just keep one copy of the value (since they should be identical). if (tabBarTextblock.TextAlignment != WTextAlignment.Center) { _oldBarTextBlockTextAlignment = tabBarTextblock.TextAlignment; tabBarTextblock.TextAlignment = WTextAlignment.Center; } if (tabBarTextblock.HorizontalAlignment != WHorizontalAlignment.Center) { _oldBarTextBlockHorinzontalAlignment = tabBarTextblock.HorizontalAlignment; tabBarTextblock.HorizontalAlignment = WHorizontalAlignment.Center; } } else { // Restore old values. tabBarTextblock.TextAlignment = _oldBarTextBlockTextAlignment; tabBarTextblock.HorizontalAlignment = _oldBarTextBlockHorinzontalAlignment; } } } } } // If items have been made visible or collapsed in panel, invalidate current control measures. if (invalidateMeasure) { Control.InvalidateMeasure(); } }