Mahapps - Как установить правильный пример в заголовках

Я использую Mahapps, и я не могу установить правильный случай для заголовков окон и заголовков полей Group и т.д.

Я пробовал настройки Google и Google Chrome.

Если кто-то знает, не могли бы вы помочь мне здесь.

Спасибо

Ответы

Ответ 1

Чтобы установить случай заголовка окна:

Задайте свойство TitleCaps на MetroWindow до false.

<controls:MetroWindow x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    TitleCaps="False" />

Чтобы использовать заголовок в групповом ящике:

Поместите это TextBlock в заголовок GroupBox.

<GroupBox>
    <GroupBox.Header>
        <TextBlock Text="My Group Box"/>
    </GroupBox.Header>
    Some content
</GroupBox>

Ответ 2

Завершение ответа @Marcos:

Есть лучшие варианты, чем изменение заголовка напрямую, без потери стиля и привязок

У меня была такая же проблема через 2 года после того, как я опубликую свое решение. Мне пришлось прочитать код в Git Hub, поэтому я понял, что стиль MetroGroupBox использует DependencyProperty в классе ControlsHelper с именем ContentCharacterCasing, поэтому у нас есть 2 варианта, задайте стиль или задайте свойство непосредственно в элементе управления. Но прежде, вам нужно это xmlns в xaml:

'xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"'

Вариант стиля:

<Style TargetType="{x:Type GroupBox}" BasedOn="{StaticResource MetroGroupBox}">
    <Setter Property="Controls:ControlsHelper.ContentCharacterCasing" Value="Normal" />
</Style>

Опция свойства управления:

<GroupBox Margin="20,20,20,0" Grid.Row="0" Header="Cliente" Controls:ControlsHelper.ContentCharacterCasing="Normal" />

Ответ 3

TitleCaps="False" устарел, используйте этот код в окне:

TitleCharacterCasing="Normal"

Ответ 4

Следующий вызов возвращает "Фред Джонс". Я просто протестировал его в программе на С#, добавив ссылку на сборку Microsoft.VisualBasic.dll:

Microsoft.VisualBasic.Strings.StrConv(
    "fred jones",
    Microsoft.VisualBasic.VbStrConv.ProperCase
)