当前位置: 首页>>代码示例>>C#>>正文


C# Cairo.DrawTextBlock方法代码示例

本文整理汇总了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;
        }
开发者ID:modesto,项目名称:monoreports,代码行数:56,代码来源:TextBlockRenderer.cs

示例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);
        }
开发者ID:elsupergomez,项目名称:monoreports,代码行数:27,代码来源:TextBlockRenderer.cs

示例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);
        }
开发者ID:elsupergomez,项目名称:monoreports,代码行数:14,代码来源:TextBlockRenderer.cs

示例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();
        }
开发者ID:modesto,项目名称:monoreports,代码行数:21,代码来源:TextBlockRenderer.cs


注:本文中的Cairo.DrawTextBlock方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。