本文整理汇总了C#中Cairo.DrawTextBlock方法的典型用法代码示例。如果您正苦于以下问题:C# Cairo.DrawTextBlock方法的具体用法?C# Cairo.DrawTextBlock怎么用?C# Cairo.DrawTextBlock使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cairo
的用法示例。
在下文中一共展示了Cairo.DrawTextBlock方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BreakOffControlAtMostAtHeight
/// <summary>
/// Breaks off contol at most at height.
/// </summary>
/// <returns>
/// Array of two controls: broken control with height equal to height param or lower and second control representing rest part of oryginal control
/// </returns>
/// <param name='control'>
/// Control to broke off
/// </param>
/// <param name='height'>
/// Height.
/// </param>
public Control[] BreakOffControlAtMostAtHeight(Cairo.Context c, Control control, double height)
{
Control[] controls = new Control[2];
TextBlock textBlock = control.CreateControl() as TextBlock;
controls[1] = textBlock;
var newTextBlock = control.CreateControl() as TextBlock;
textBlock.Top = 0;
int charNumber = c.GetBreakLineCharacterIndexbyMaxHeight (textBlock,height);
if (charNumber > 0) {
newTextBlock.Text = textBlock.Text.Substring (0,charNumber-1);
newTextBlock.Padding = new Thickness(textBlock.Padding.Left,0,textBlock.Padding.Right,textBlock.Padding.Bottom);
var newSize = c.DrawTextBlock (newTextBlock, false);
newTextBlock.Height = newSize.Height;
textBlock.Height = textBlock.Height - newSize.Height;
textBlock.Text = textBlock.Text.Substring (charNumber-1);
}
else if (charNumber == 0)
{
newTextBlock.Height = textBlock.Padding.Top;
newTextBlock.Text = String.Empty;
textBlock.Height = textBlock.Height - newTextBlock.Height;
}
else if (charNumber == -1) {
newTextBlock.Height = height;
newTextBlock.Text = String.Empty;
textBlock.Height = textBlock.Height - height;
textBlock.Padding = new Thickness (textBlock.Padding.Left,textBlock.Padding.Top - height,textBlock.Padding.Right,textBlock.Padding.Bottom);
} else if (charNumber == -2) {
newTextBlock.Height = height;
textBlock.Text = String.Empty;
textBlock.FieldName = String.Empty;
textBlock.Height = textBlock.Height - height;
textBlock.Padding = new Thickness (textBlock.Padding.Left,textBlock.Padding.Top - height,textBlock.Padding.Right,textBlock.Padding.Bottom);
}
controls[0] = newTextBlock;
return controls;
}
示例2: Render
public void Render(Cairo.Context c,Control control)
{
TextBlock textBlock = control as TextBlock;
Rectangle borderRect;
c.Save();
borderRect = new Rectangle (textBlock.Location.X * unitMulitipier , textBlock.Location.Y * unitMulitipier, textBlock.Width * unitMulitipier, textBlock.Height * unitMulitipier);
if(!textBlock.CanGrow || DesignMode)
c.ClipRectangle(borderRect);
var rect = c.DrawTextBlock (textBlock,false);
if(!DesignMode && (textBlock.CanGrow && rect.Height > textBlock.Height || textBlock.CanShrink && rect.Height < textBlock.Height )){
borderRect = new Rectangle (textBlock.Location.X, textBlock.Location.Y, textBlock.Width, rect.Height);
} else {
borderRect = new Rectangle (textBlock.Location.X, textBlock.Location.Y, textBlock.Width, textBlock.Height);
}
c.FillRectangleInUnit(borderRect,textBlock.BackgroundColor.ToCairoColor());
if(DesignMode){
c.DrawInsideSelectorInUnits (borderRect, new Border(1),4);
}
c.DrawTextBlock (textBlock,true);
c.DrawInsideBorderInUnit (borderRect, textBlock.Border,true);
c.Restore();
if(MonoreportsSettings.debugMode)
c.DrawDebug( string.Format(Catalog.GetString("bottom: {0}"),textBlock.Bottom.ToUnitString()),borderRect.X,textBlock.Bottom);
}
示例3: Measure
public Size Measure(Cairo.Context c, Control control)
{
TextBlock textBlock = control as TextBlock;
Rectangle borderRect;
var rect = c.DrawTextBlock (textBlock,false);
if(textBlock.CanGrow && rect.Height > textBlock.Height || textBlock.CanShrink && rect.Height < textBlock.Height){
borderRect = new Rectangle (textBlock.Location.X, textBlock.Location.Y, textBlock.Width, rect.Height);
} else {
borderRect = new Rectangle (textBlock.Location.X, textBlock.Location.Y, textBlock.Width, textBlock.Height);
}
return new Size(borderRect.Width, borderRect.Height);
}
示例4: Render
public void Render(Cairo.Context c,Control control)
{
TextBlock textBlock = control as TextBlock;
Rectangle borderRect;
c.Save();
borderRect = new Rectangle (textBlock.Location.X, textBlock.Location.Y, textBlock.Width, textBlock.Height);
if(!textBlock.CanGrow || DesignMode)
c.ClipRectangle(borderRect);
var rect = c.DrawTextBlock (textBlock,false);
if(!DesignMode && (textBlock.CanGrow && rect.Height > textBlock.Height || textBlock.CanShrink && rect.Height < textBlock.Height)){
borderRect = new Rectangle (textBlock.Location.X, textBlock.Location.Y, textBlock.Width, rect.Height);
} else {
borderRect = new Rectangle (textBlock.Location.X, textBlock.Location.Y, textBlock.Width, textBlock.Height);
}
c.FillRectangle(borderRect,textBlock.BackgroundColor.ToCairoColor());
c.DrawTextBlock (textBlock,true);
c.DrawInsideBorder (borderRect, textBlock.Border,true);
c.Restore();
}