2013-12-04 3 views
0

У меня есть проект с многоподсистемой. и создал проект для каждой подсистемы.Изменить размер шрифта приложения во время выполнения

В этом проекте используется MVVMLight.

Я установил ресурс для основного проекта и установил для него размер шрифта.

Я хочу изменить размер шрифта ui во время выполнения.

Когда я использую этот код, он меняет размер шрифта только mainwindows, но я хочу изменить размер шрифта для всех дочерних окон.

Application.Current.MainWindow.FontSize = 12; 

ответ

0

вместо установки нового FontSize я использую ScaleTransform в моем проекте, может быть, его также способ для вас

<Window> 
<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="auto"/> 
    </Grid.RowDefinitions> 
    <Border Grid.Row="0"> 
     <Border.LayoutTransform> 
      <ScaleTransform ScaleX="{Binding ElementName=zoomer, Path=Value}" ScaleY="{Binding ElementName=zoomer, Path=Value}"></ScaleTransform> 
     </Border.LayoutTransform> 
     <!-- content here --> 
    </Border> 
    <Slider Grid.Row="1" x:Name="zoomer" Width="100" Focusable="False" Value="1" 
      Minimum="1" Maximum="2.2" TickFrequency="0.1" IsSnapToTickEnabled="True"/> 
    </Grid> 
    </Window> 
+0

Спасибо, но у меня есть проект, который используется в приложении, и я хочу изменить размер шрифта всего проекта с помощью кнопки в специальном проекте. –

+0

затем сохраните «новый» шрифт в настройках приложения и привяжите его – blindmeis

0

Хотя свойство FontSize наследуется контроля ребенка, это может быть сложно установить его на Window и все дочерние элементы управления наследуют это значение. Если какой-либо дочерний элемент управления явно установил собственное значение свойства FontSize, это будет «переопределять» все, что установлено для родителя.

Я не знаю, каким-либо образом, чтобы установить FontSize из всеWindow ы в приложении, но вы можете установить FontSize из всех открытых Window с в приложении во время выполнения:

foreach (Window window in Application.Current.Windows) window.FontSize = 12; 

Кроме того, если вы хотите установить свойство только на открытых Window с определенного типа, то вы можете сделать это:

foreach (Window window in Application.Current.Windows.OfType<DialogWindow>()) 
    window.FontSize = 12; 
+0

Да, я могу установить размер шрифта для открытых окон, но есть ли какое-либо решение для установки размера шрифта для ui, что при открытии новых окон установите размер шрифта для этого. –

+0

Какой метод вы используете для открытия нового окна? – Sheridan

+0

Я использую 'window.Show();' –

Смежные вопросы