private void UpdateUI(StyleDefinition paragraphStyle) { this.comboAligment.SelectedValue = (RadTextAlignment)paragraphStyle.GetPropertyValue(Paragraph.TextAlignmentProperty); this.radNumSpacingBefore.Value = Unit.DipToPoint(((double?)paragraphStyle.GetPropertyValue(Paragraph.SpacingBeforeProperty)).Value); this.radNumSpacingAfter.Value = Unit.DipToPoint(((double?)paragraphStyle.GetPropertyValue(Paragraph.SpacingAfterProperty)).Value); this.checkBoxAutomaticSpacingBefore.IsChecked = ((bool?)paragraphStyle.GetPropertyValue(Paragraph.AutomaticSpacingBeforeProperty)).Value; this.checkBoxAutomaticSpacingAfter.IsChecked = ((bool?)paragraphStyle.GetPropertyValue(Paragraph.AutomaticSpacingAfterProperty)).Value; double leftIndent = Unit.DipToPoint(((double?)paragraphStyle.GetPropertyValue(Paragraph.LeftIndentProperty)).Value); this.radNumRightIndent.Value = Unit.DipToPoint(((double?)paragraphStyle.GetPropertyValue(Paragraph.RightIndentProperty)).Value); LineSpacingType lineSpacingType = ((LineSpacingType?)paragraphStyle.GetPropertyValue(Paragraph.LineSpacingTypeProperty)).Value; double lineSpacingValue = ((double?)paragraphStyle.GetPropertyValue(Paragraph.LineSpacingProperty)).Value; this.UpdateLineSpacingUI(lineSpacingType, lineSpacingValue); this.paragraphBackgroundColorSelector.SelectedColor = (Color)paragraphStyle.GetPropertyValue(Paragraph.BackgroundProperty); this.SetFlowDirection((FlowDirection)paragraphStyle.GetPropertyValue(Paragraph.FlowDirectionProperty)); double firstIndentValue = Unit.DipToPoint(((double?)paragraphStyle.GetPropertyValue(Paragraph.FirstLineIndentProperty)).Value); // < 0 is hanging; // > 0 is first line; // 0 is none; if (firstIndentValue > 0) { this.radNumFirstIndent.Value = firstIndentValue; this.comboFirstIndentType.SelectedItem = this.firstLineIndentTypes[FirstLineIndentDialogTypes.FirstLine]; } else if (firstIndentValue < 0) { this.comboFirstIndentType.SelectedItem = this.firstLineIndentTypes[FirstLineIndentDialogTypes.Hanging]; leftIndent += firstIndentValue; this.radNumFirstIndent.Value = -firstIndentValue; } else { this.comboFirstIndentType.SelectedItem = this.firstLineIndentTypes[FirstLineIndentDialogTypes.None]; } this.radNumLeftIndent.Value = leftIndent; }
private void UpdateLineSpacingUI(LineSpacingType lineSpacingType, double lineSpacingValue) { if (lineSpacingType == LineSpacingType.Exact) { this.comboLineSpacing.SelectedValue = this.lineSpacingTypes[LineSpacingDialogTypes.Exactly]; this.radNumLineSpacing.Value = Unit.DipToPoint(lineSpacingValue); } else if (lineSpacingType == LineSpacingType.AtLeast) { this.comboLineSpacing.SelectedValue = this.lineSpacingTypes[LineSpacingDialogTypes.AtLeast]; this.radNumLineSpacing.Value = Unit.DipToPoint(lineSpacingValue); } else if (lineSpacingType == LineSpacingType.Auto) { if (lineSpacingValue == 1.0) { this.comboLineSpacing.SelectedValue = this.lineSpacingTypes[LineSpacingDialogTypes.Single]; } else if (lineSpacingValue == 1.5) { this.comboLineSpacing.SelectedValue = this.lineSpacingTypes[LineSpacingDialogTypes.LineAndAHalf]; } else if (lineSpacingValue == 2.0) { this.comboLineSpacing.SelectedValue = this.lineSpacingTypes[LineSpacingDialogTypes.Double]; } else { this.comboLineSpacing.SelectedValue = this.lineSpacingTypes[LineSpacingDialogTypes.Multiple]; this.radNumLineSpacing.Value = lineSpacingValue; } } else { Debug.Assert(false, "Unknown LineSpacingType"); } }
/// <summary> /// Set the linespacing for this paragraph manually. /// </summary> /// <param name="spacingType">The type of spacing to be set, can be either Before, After or Line (Standard line spacing).</param> /// <param name="spacingFloat">A float value of the amount of spacing. Equals the value that van be set in Word using the "Line and Paragraph spacing" button.</param> public void SetLineSpacing(LineSpacingType spacingType, float spacingFloat) { spacingFloat = spacingFloat * 240; int spacingValue = (int)spacingFloat; var pPr = this.GetOrCreate_pPr(); var spacing = pPr.Element(XName.Get("spacing", DocX.w.NamespaceName)); if (spacing == null) { pPr.Add(new XElement(XName.Get("spacing", DocX.w.NamespaceName))); spacing = pPr.Element(XName.Get("spacing", DocX.w.NamespaceName)); } string spacingTypeAttribute = ""; switch (spacingType) { case LineSpacingType.Line: { spacingTypeAttribute = "line"; break; } case LineSpacingType.Before: { spacingTypeAttribute = "before"; break; } case LineSpacingType.After: { spacingTypeAttribute = "after"; break; } } spacing.SetAttributeValue(XName.Get(spacingTypeAttribute, DocX.w.NamespaceName), spacingValue); }
private string GetLineSpacingDialogType(LineSpacingType? lineSpacingType, double? lineSpacingValue) { string lineSpacingDialogType = string.Empty; if (lineSpacingType == LineSpacingType.Exact) { lineSpacingDialogType = this.lineSpacingTypes[LineSpacingDialogTypes.Exactly]; } else if (lineSpacingType == LineSpacingType.AtLeast) { lineSpacingDialogType = this.lineSpacingTypes[LineSpacingDialogTypes.AtLeast]; } else if (lineSpacingType == LineSpacingType.Auto) { if (lineSpacingValue == 1.0) { lineSpacingDialogType = this.lineSpacingTypes[LineSpacingDialogTypes.Single]; } else if (lineSpacingValue == 1.5) { lineSpacingDialogType = this.lineSpacingTypes[LineSpacingDialogTypes.LineAndAHalf]; } else if (lineSpacingValue == 2.0) { lineSpacingDialogType = this.lineSpacingTypes[LineSpacingDialogTypes.Double]; } else { lineSpacingDialogType = this.lineSpacingTypes[LineSpacingDialogTypes.Multiple]; } } return lineSpacingDialogType; }
private double? GetLineSpacingDialogValue(LineSpacingType? lineSpacingType, double? lineSpacingValue) { double? lineSpacingDialogValue = null; if (lineSpacingValue.HasValue) { if (lineSpacingType == LineSpacingType.Exact || lineSpacingType == LineSpacingType.AtLeast) { lineSpacingDialogValue = Unit.DipToPoint(lineSpacingValue.Value); } else if (lineSpacingType == LineSpacingType.Auto) { lineSpacingDialogValue = lineSpacingValue; } } return lineSpacingDialogValue; }
private void UpdateLineSpacingUI(LineSpacingType? lineSpacingType, double? lineSpacingValue) { this.comboLineSpacing.SelectedValue = this.GetLineSpacingDialogType(lineSpacingType, lineSpacingValue); this.radNumLineSpacing.Value = this.GetLineSpacingDialogValue(lineSpacingType, lineSpacingValue); }