Group: Forum Members
Last Active: 3 Years Ago
Posts: 8,
Visits: 18
|
Hi I am using Nevron diagram and trying to set Font size and style for each shape . But it is taking the last shape style for the entire renderings . Please let me know how to set font styles for each shape Code used for setting font style for each shape : For Each s As NShape In document.Descendants(NFilters.Shape2D, -1) If Not IsNothing(s.Tag) Then Dim roomInfo As RoomInfo = s.Tag Dim roomNumber As String = roomInfo.RoomNumber Dim customFontSize as Single = roomInfo.CustomFontSize
Dim textSize As Single If Not String.IsNullOrEmpty(customFontSize ) Then textSize = Convert.ToSingle(customFontSize ) Dim textStyle As New NTextStyle textStyle = s.ComposeTextStyle() textStyle.FontStyle = New NFontStyle("Arial", textSize) NStyle.SetTextStyle(s, textStyle) End If End If Next For Each s As NShape In document.Descendants(NFilters.Shape2D, -1)
If Not IsNothing(s.Tag) Then
Dim roomInfo As RoomInfo = s.Tag
Dim roomNumber As String = roomInfo.RoomNumber
Dim customFontSize as Single = roomInfo.CustomFontSize
Dim textSize As Single
If Not String.IsNullOrEmpty(customFontSize ) Then
textSize = Convert.ToSingle(customFontSize )
Dim textStyle As New NTextStyle
textStyle = s.ComposeTextStyle()
textStyle.FontStyle = New NFontStyle("Arial", textSize)
NStyle.SetTextStyle(s, textStyle)
End If
End If
Next
|
Group: Forum Members
Last Active: Last Month
Posts: 3,055,
Visits: 4,052
|
Hi , By default the composed text style is the text style of the drawing document and every change changes it directly . That is why the style of the last shape is applied to the document ' s text style and then to all other shapes . To avoid this issue , you should clone the composed text style and then modify the cloned version . Here ' s how to clone it : Dim textStyle As NTextStyle = CType(s.ComposeTextStyle().Clone(), NTextStyle)
Dim textStyle As NTextStyle = CType(s.ComposeTextStyle().Clone(), NTextStyle)
To save memory and improve performance we recommend you clone and apply a text style only to shapes whose text style should be different from the text style of the drawing &# 100 ; ocument .
Best Regards, Nevron Support Team
|
Group: Forum Members
Last Active: 3 Years Ago
Posts: 8,
Visits: 18
|
Hi , I implemented the code and cloned the shapefile style . But still i am seeing no difference in the text size for each shape file . Please let me know what i am missing . For Each s As NShape In document.Descendants(NFilters.Shape2D, -1) If Not IsNothing(s.Tag) Then Dim roomInfo As RoomInfo = s.Tag Dim roomNumber As String = roomInfo.RoomNumber Dim customFontSize as Single = roomInfo.CustomFontSize Dim textSize As Single
If Not String.IsNullOrEmpty(customFontSize) Then textSize = Convert.ToSingle(customFontSize) Dim textStyle As NTextStyle = CType(s.ComposeTextStyle().Clone(), NTextStyle) textStyle.FontStyle = New NFontStyle("Arial", textSize) NStyle.SetTextStyle(s, textStyle) End If End If Next
For Each s As NShape In document.Descendants(NFilters.Shape2D, -1)
If Not IsNothing(s.Tag) Then
Dim roomInfo As RoomInfo = s.Tag
Dim roomNumber As String = roomInfo.RoomNumber
Dim customFontSize as Single = roomInfo.CustomFontSize
Dim textSize As Single
If Not String.IsNullOrEmpty(customFontSize) Then
textSize = Convert.ToSingle(customFontSize)
Dim textStyle As NTextStyle = CType(s.ComposeTextStyle().Clone(), NTextStyle)
textStyle.FontStyle = New NFontStyle("Arial", textSize)
NStyle.SetTextStyle(s, textStyle)
End If
End If
Next
|
Group: Forum Members
Last Active: Last Month
Posts: 3,055,
Visits: 4,052
|
Hi Kirk , A better solution would be to create a custom NShapeCreatedListener and then override its OnPolygonLabelCreated method . This method is called every time a label of a polygon ( room in your case ) is created . You can use it to modify the style of the created map label . Please take a look at the following NOV Diagram web example : http://examplesaspnetdiagram.nevron.com/Frames/NExampleFrame.aspx?ExampleUrl=Examples%2fMaps%2fNWorldPopulationUC.ascxYou will find the custom implementation of the NShapeCreatedListener at the end of the code in the " Source Code " tab . We hope this helps . Let us know if you have any questions .
Best Regards, Nevron Support Team
|