.Net(VB、C#)のWPFでマウスホイールに連動してフォントサイズを変更する
[Control]キーが押された状態でのマウスホイールの回転に連動してフォントサイズを変更する。
また、フォントサイズに連動したグリッドの動きを確認する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | <Window x:Class="WPFSample.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Grid" FontSize="16" Height="320" Width="480"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Grid> <Grid.RowDefinitions> <RowDefinition Height="50" /> <RowDefinition Height="50" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="150" /> <ColumnDefinition Width="150" /> <ColumnDefinition Width="150" /> </Grid.ColumnDefinitions> <Button Content="固定幅" Background="#ffcccc" /> <Button Content="A" Background="#ccffcc" Grid.Column="1" /> <Button Content="B" Background="#ccccff" Grid.Column="2" /> <Button Content="190" Background="#ccffff" Grid.Row="1" /> <Button Content="190" Background="#ffccff" Grid.Row="1" Grid.Column="1" /> <Button Content="190" Background="#ffffcc" Grid.Row="1" Grid.Column="2" /> </Grid> <Grid Grid.Row="1"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="2*" /> <ColumnDefinition Width="3*" /> <ColumnDefinition Width="4*" /> </Grid.ColumnDefinitions> <Button Content="比率" Background="#ffcccc" /> <Button Content="A" Background="#ccffcc" Grid.Column="1" /> <Button Content="B" Background="#ccccff" Grid.Column="2" /> <Button Content="2*" Background="#ccffff" Grid.Row="1" /> <Button Content="3*" Background="#ffccff" Grid.Row="1" Grid.Column="1" /> <Button Content="4*" Background="#ffffcc" Grid.Row="1" Grid.Column="2" /> </Grid> <Grid Grid.Row="2"> <Grid.RowDefinitions> <RowDefinition Height="auto" /> <RowDefinition Height="auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto" /> <ColumnDefinition Width="auto" /> <ColumnDefinition Width="auto" /> </Grid.ColumnDefinitions> <Button Content="自動" Background="#ffcccc" /> <Button Content="━━━長いテキスト━━━" Background="#ccffcc" Grid.Column="1" /> <Button Content="短い" Background="#ccccff" Grid.Column="2" /> <Button Content="auto" Background="#ccffff" Grid.Row="1" /> <Button Content="短い" Background="#ffccff" Grid.Row="1" Grid.Column="1" /> <Button Content="━━━長いテキスト━━━" Background="#ffffcc" Grid.Row="1" Grid.Column="2" /> </Grid> </Grid> </Window> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | Namespace WPFSample Class Window1 Public Sub New() ' この呼び出しは、Windows フォーム デザイナで必要です。 InitializeComponent() ' InitializeComponent() 呼び出しの後で初期化を追加します。 End Sub Protected Overrides Sub OnMouseWheel(ByVal e As System.Windows.Input.MouseWheelEventArgs) ' Controlキーの入力判定 If (Keyboard.Modifiers And ModifierKeys.Control) <> ModifierKeys.None Then ' Controlキーの入力がある場合 ' ホイールの回転方向判定 If e.Delta > 0 Then ' ホイールを上方向に回転 ' フォントサイズが200未満の場合、フォントサイズを増加 If Me.FontSize < 200 Then Me.FontSize += 1 End If Else ' ホイールを下方向に回転 ' フォントサイズが1より大きい場合、フォントサイズを減少 If Me.FontSize > 1 Then Me.FontSize -= 1 End If End If End If MyBase.OnMouseWheel(e) End Sub End Class End Namespace |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace WPFSample { /// <summary> /// Window1.xaml の相互作用ロジック /// </summary> public partial class Window1 : Window { public Window1() { InitializeComponent(); } protected override void OnMouseWheel(MouseWheelEventArgs e) { // Controlキーの入力判定 if ((Keyboard.Modifiers & ModifierKeys.Control) != ModifierKeys.None) { // Controlキーの入力がある場合 // ホイールの回転方向判定 if (e.Delta > 0) { // ホイールを上方向に回転 // フォントサイズが200未満の場合、フォントサイズを増加 if (this.FontSize < 200) { this.FontSize++; } } else { // ホイールを下方向に回転 // フォントサイズが1より大きい場合、フォントサイズを減少 if (this.FontSize > 1) { this.FontSize--; } } } base.OnMouseWheel(e); } } } |