Сделайте часть текста Маркировки, который будет разработан полужирные

Есть ли любой способ сделать часть a label.text быть полужирным?

label.text = "asd" + string;

Хотел бы string часть, чтобы быть полужирным.

Возможно, как это может быть сделано?

30
задан p.campbell 2 June 2011 в 22:09
поделиться

7 ответов

WinForms не позволяют это делать.

20
ответ дан 27 November 2019 в 23:21
поделиться

Сводка: В среде IDE используйте stureConfirmation.

Необходимо использовать диалоговые окна подтверждения. В противном случае тест селена завершится неуспешно.

Из метода Java Selenium RC API Selenium.html.getConfirmation :

Если подтверждение создано, но вы не потребляете его с метод getConfirmation, следующий Selenium действие не будет выполнено.

Edit:

stureConfirmation также использует подтверждение.

stureConfirmation (variiveName)

Получение сообщения диалогового окна подтверждения JavaScript сгенерировано во время предыдущего действия.

Если подтверждение создано, но вы не используете его с метод getConfirmation, следующий Selenium действие не будет выполнено.

-121--2318996-

Я написал модуль PowerShell под названием VisioPS , который может вам помочь (См. раздел загрузки здесь: * Модуль VisioPS является частью моей библиотеки VisioAutomation на CodePlex )

После установки VisioPS вы запускаете экземпляр PowerShell и делаете следующее:

Import-Module VisioPS
New-VisioApplication
New-VisioDocument
$dg = Import-VisioDirectedGraph c:\foo.xml
Invoke-VisioDraw $dg

Direct Graph - это простой XML-документ, подобный этому

<directedgraph>
  <page>
    <renderoptions
      usedynamicconnectors="true"
      scalingfactor="20"
    />
    <shapes>
      <shape id="n1" label="FOO1" stencil="server_u.vss" master="Server" url="http://microsoft.com" />
      <shape id="n2" label="FOO2" stencil="server_u.vss" master="Email Server" url="http://contoso.com"/>
      <shape id="n3" label="FOO3" stencil="server_u.vss" master="Proxy Server" url="\\isotope\public" />
      <shape id="n4" label="FOO4" stencil="server_u.vss" master="Web Server">
        <customprop name="prop1" value="value1"/>
        <customprop name="prop2" value="value2"/>

      </shape>
      <shape id="n5" label="FOO4" stencil="server_u.vss" master="Application Server" />
    </shapes>

    <connectors>
      <connector id="c1"  from="n1" to="n2" label="LABEL1" />
      <connector id="c2" from="n2" to="n3" label="LABEL2" color="#ff0000" weight="2" />
      <connector id="c3" from="n3" to="n4" label="LABEL1" color="#44ff00" />
      <connector id="c4" from="n4" to="n5" label="" color="#0000ff" weight="5"/>
      <connector id="c5" from="n4" to="n1" label="" />
      <connector id="c6" from="n4" to="n3" label="" weight="10"/>
    </connectors>

  </page>

</directedgraph>
  • VisioPS использует MSAGL для выполнения макета узлов
  • Вы можете легко взять таблицу зависимостей и создать необходимый XML
  • Если посмотреть поближе на код в моей библиотеке, можно также непосредственно создавать объекты, необходимые для выполнения рендеринга, без необходимости вообще проходить через XML.
-121--2823098-

Необходимо ли использовать элемент управления Label или просто поместить текст в определенное место? Если первый, вам нужно сделать заказную живопись, как другие люди отметили. В противном случае можно использовать только для чтения RichTextBox .

2
ответ дан 27 November 2019 в 23:21
поделиться

В WinForms переопределяют Маркировку. OnPaint () метод и рисуют текст ваш сам.

1
ответ дан 27 November 2019 в 23:21
поделиться

В ASP.NET вы могли сделать:

label.Text = string.Format("asd <span style='font-weight: bold;'>{0}</span>", string);

, Но как все остальные говорит, зависит от того, что вы используете.

1
ответ дан 27 November 2019 в 23:21
поделиться

Использование WebForms

Литерал управление, и добавляет тэг вокруг части текста, который вы хотите:

_myLiteral. Текст = "Привет , большой мир ";

опции Winforms

Two:

  1. Помещенный две маркировки, рядом (намного легче)
  2. , Подкласс Маркирует и делает ваш собственный рисунок в OnPaint () метод.

второй выбор был уже, ответил .

19
ответ дан 27 November 2019 в 23:21
поделиться

Сводка: в среде IDE используйте stureConfirmation.

Необходимо использовать диалоговые окна подтверждения. В противном случае тест селена завершится неуспешно.

Из метода Java Selenium RC API Selenium.html.getConfirmation :

Если подтверждение создано, но вы не потребляете его с метод getConfirmation, следующий Selenium действие не будет выполнено.

Edit:

stureConfirmation также использует подтверждение.

stureConfirmation (variiveName)

Получение сообщения диалогового окна подтверждения JavaScript сгенерировано во время предыдущего действия.

Если подтверждение создано, но вы не используете его с метод getConfirmation, следующий Selenium действие не будет выполнено.

-121--2318996-

Я написал модуль PowerShell под названием VisioPS , который может вам помочь (См. раздел загрузки здесь: * Модуль VisioPS является частью моей библиотеки VisioAutomation на CodePlex )

После установки VisioPS вы запускаете экземпляр PowerShell и делаете следующее:

Import-Module VisioPS
New-VisioApplication
New-VisioDocument
$dg = Import-VisioDirectedGraph c:\foo.xml
Invoke-VisioDraw $dg

Direct Graph - это простой XML-документ, подобный этому

<directedgraph>
  <page>
    <renderoptions
      usedynamicconnectors="true"
      scalingfactor="20"
    />
    <shapes>
      <shape id="n1" label="FOO1" stencil="server_u.vss" master="Server" url="http://microsoft.com" />
      <shape id="n2" label="FOO2" stencil="server_u.vss" master="Email Server" url="http://contoso.com"/>
      <shape id="n3" label="FOO3" stencil="server_u.vss" master="Proxy Server" url="\\isotope\public" />
      <shape id="n4" label="FOO4" stencil="server_u.vss" master="Web Server">
        <customprop name="prop1" value="value1"/>
        <customprop name="prop2" value="value2"/>

      </shape>
      <shape id="n5" label="FOO4" stencil="server_u.vss" master="Application Server" />
    </shapes>

    <connectors>
      <connector id="c1"  from="n1" to="n2" label="LABEL1" />
      <connector id="c2" from="n2" to="n3" label="LABEL2" color="#ff0000" weight="2" />
      <connector id="c3" from="n3" to="n4" label="LABEL1" color="#44ff00" />
      <connector id="c4" from="n4" to="n5" label="" color="#0000ff" weight="5"/>
      <connector id="c5" from="n4" to="n1" label="" />
      <connector id="c6" from="n4" to="n3" label="" weight="10"/>
    </connectors>

  </page>

</directedgraph>
  • VisioPS использует MSAGL для выполнения макета узлов
  • Вы можете легко взять таблицу зависимостей и создать необходимый XML
  • Если посмотреть поближе на код в моей библиотеке, можно также непосредственно создавать объекты, необходимые для выполнения рендеринга, без необходимости вообще проходить через XML.
-121--2823098-

Следующий класс иллюстрирует, как это сделать, переопределяя OnPaint () в классе Label WinForms. Его можно уточнить. Но я сделал то, что использовал символ трубы ( | ) в последовательности, чтобы указать методу OnPaint () напечатать текст перед | жирным шрифтом и после него обычный текст.

class LabelX : Label
{
    protected override void OnPaint(PaintEventArgs e) {
        Point drawPoint = new Point(0, 0);

        string[] ary = Text.Split(new char[] { '|' });
        if (ary.Length == 2) {
            Font normalFont = this.Font;

            Font boldFont = new Font(normalFont, FontStyle.Bold);

            Size boldSize = TextRenderer.MeasureText(ary[0], boldFont);
            Size normalSize = TextRenderer.MeasureText(ary[1], normalFont);

            Rectangle boldRect = new Rectangle(drawPoint, boldSize);
            Rectangle normalRect = new Rectangle(
                boldRect.Right, boldRect.Top, normalSize.Width, normalSize.Height);

            TextRenderer.DrawText(e.Graphics, ary[0], boldFont, boldRect, ForeColor);
            TextRenderer.DrawText(e.Graphics, ary[1], normalFont, normalRect, ForeColor);
        }
        else {

            TextRenderer.DrawText(e.Graphics, Text, Font, drawPoint, ForeColor);                
        }
    }
}

Вот как его использовать:

LabelX x = new LabelX();
Controls.Add(x);
x.Dock = DockStyle.Top;
x.Text = "Hello | World";       

Привет будет напечатан жирным шрифтом , а мир - обычным.

27
ответ дан 27 November 2019 в 23:21
поделиться

Простой способ сделать то, что вы хотите просто добавить две этикетки. Таким образом, вы можете сделать один смелый, и он будет выглядеть хорошо с правильным позиционированием.

Обычный способ создать элемент управления, который имеет два или более ярлыков, и вы можете установить свойства на каждом из них. Также это имеет преимущество, которое многонаправлено.

2
ответ дан 27 November 2019 в 23:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: