回答ではありませんが、手元で適当に実行した感じでは
xaml
1<Window x:Class="WpfApplication1.MainWindow"
2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
6 xmlns:local="clr-namespace:WpfApplication1"
7 mc:Ignorable="d"
8 Title="MainWindow" Height="350" Width="525">
9 <Grid MouseWheel="Grid_MouseWheel" >
10 <Grid.LayoutTransform>
11 <ScaleTransform CenterX="0" CenterY="0" x:Name="st"/>
12 </Grid.LayoutTransform>
13 <TextBox Width="100" Height="50" HorizontalAlignment="Left" VerticalAlignment="Top" Text="ああああ" />
14 </Grid>
15</Window>
csharp
1namespace WpfApplication1
2{
3
4
5
6 public partial class MainWindow : Window
7 {
8 public MainWindow()
9 {
10 InitializeComponent();
11 }
12
13 private void Grid_MouseWheel(object sender, MouseWheelEventArgs e)
14 {
15 if ((Keyboard.Modifiers & ModifierKeys.Control) > 0)
16 {
17 double zoom;
18 if (e.Delta < 0)
19 {
20 zoom = st.ScaleX < 0.2 ? 0 : -0.1;
21 }
22 else
23 {
24 zoom = st.ScaleX > 4 ? 0 : 0.1;
25 }
26
27 st.ScaleX += zoom;
28 st.ScaleY += zoom;
29 }
30 }
31 }
32}
33
通常時が以下:
拡大時が以下:
になります。
この状態はashuntaさんの現状と同じですか?
違うのであれば、こちらで再現できるようなコードを提示してください。