I have a report which was created using Microsoft Reporting in VS2010. It has labels which must display any text in single line. But it appears that if I don't set the label's height precisely correct, then the text will be displayed in lines bellow if it doesn't fit in a single line. I haven't found a property that enforces single line on labels. What are the ways to enforce single line except setting proper height?
Seems to be no other solution except setting CanGrow = false and guessing the correct label height.
Related
In Xamarin.Forms the TailTruncation mode for labels works fine for single lines of text.
We can also force the TailTruncation to happen at the 2nd or 3rd or Nth line, if we know in advance the lenght of the text, using a custom renderer like this one: Depechie MultilineLabel .
But what I really need is a TailTruncation that works even when I don't know in advance how many lines of text will fit in a label.
If the height of my Label changes, and so the number of lines of text that can fit in it, I want the TailTruncation happens at the end of the available space. Not at the line before and neither at the line after.
How can I get TailTruncation happens when the text meets the limit of the available word wrap space inside the Label bounds?
Is there a custom renderer trick that allows to calculate the number of lines that fit inside the bounds and set the TailTruncation line number accordingly (on both iOS and Android)?
Thanks in advance.
This is the screenshot of an RDLC report in my Visual Studio report designer
As you can see from the screenshot, my table is totally centered.
This is the screenshot of my report in running mode.
You can see that the table has moved to the right a bit.
I do not know why this is happening. I have set the CanGrow and CanShrink attribute of my individual columns to false, but I think my table body is growing.
It looks like email address length is the reason - it causes this column to expand. You can test this theory by removing record #4 from you report's data source.
Check that two things are set in properties:
click on containing Text Box and click F4. Make sure that "Can Grow" property is set to true (which most likely already is)
right click on containing Text Box and go to TextBox property window. Make sure that sizing option "Allow Height to increase" is checked ON (in General tab). This should push text in the column to wrap instead.
Do the same thing for all the columns that you anticipate longer text (like applicant name). Also, consider increasing initial width of this kind of columns to get more predictable formatting results.
Another thing to do is to remove all white space on the right and left of the table and setting all the margins to make page to be exactly 8.5 x 11 in total (if, for example, you are aiming to use letter page size). This would remove any "space to grow" for the table.
In my application, I am using a BarChart to display data. However, the text in the category axis can be too long to display on the chart, so flex adjusts the font size automatically to the point that the data is either unreadable, or the text is partially visible.
The length of the text varies every time new data comes in, so I can't set the gutterLeft attribute to a static value at runtime.
Two things that come to my mind are:
Change the gutter dynamically according to new data
Have a scroll bar on the categoryaxis so that if any text won't fit in the space, the user can scroll to see it
Any help would be appreciated.
EDIT:
I have hundreds of rows of data being graphed at once, so I can't really use a legend for each item.
Also, I have no idea how to change the gutterLeft property with actionscript. Doing it in MXML is as simple as
gutterLeft="100"
but I cannot access the property using actionscript. I also tried to bind the gutterLeft variable to an integer and change that integer and it still didn't work. :|
the problem is that gutterleft is a style, and therefor needs to be set as one when using actionscript.
I was hoping to see your code to give a more detailed answer but what you want to do is:
mychart.setStyle("gutterLeft",500);
I have a line chart that sometimes contains a number of data points. I have solved how to prevent the horizontal axis from displaying too many labels using custom label functions and data functions. My problem is forcing the AxisRenderer not to scale down my labels.
I'm using the labelRotation property so the canDropLabels and canStagger properties are not an option.
Thanks in advance for any replies.
Try use gutter, gutter set are for the axis labels (if you want u can try to read the code of the AxisRenderer, and see how it use the gutter and other parameters to scale if need the text.
You can set the gutter by style like this (this work for me):
LineChart {
gutterLeft:50;
gutterRight:50;
gutterBottom:50;
}
I believe this can be done by editing the labelRenderer property. Take a look at the second example on this page (Formatting charts), they define a custom component to use as the label. You can do something like that to maintain whatever look you want.
I ran into the same issue. In my case (for the data that I'm plotting), simply setting canDropLabels to true (either in ActionScript or MXML as below) resulted in widening the margins allocated (I'm guessing) to the label text in the chart such that I never saw the text render smaller than set by fontSize below. Try it, it may be all you need.
hAxisRenderer.setStyle("canDropLabels",true);
...
<mx:AxisRenderer id="hAxisRenderer" placement="bottom"
tickPlacement="inside" tickLength="8"
canStagger="false" canDropLabels="false" fontSize="12">
For reference: http://blog.flexexamples.com/2007/10/16/dropping-labels-in-a-flex-chart/
I am building a text-to-image generator that takes a text, a font, a max width and some other parameters and generates an image from this. It will be used as a custom server control in a web site to generate headlines.
I allready have a component like this which uses GDI+. The problem with this is that GDI+ is incapable of setting line height which means I have to render the text first and then copy the resulting rows into a new Bitmap using the line height I want.
I am now looking at using WPF components instead and have managed to create text images using FormattedText. The problem is that I still cannot set line height. Is there a way to do this? If I could set letter spacing as well, that would be even better.
You should just be able to set the LineHeight property, is that not working?