1

首先,我缩放(ScaleTransform) TextBox,然后鼠标点击TextBox。有时能显示光标,有时不能显示光标。寻找解决问题的方法。我希望在缩放TextBox.

 <Grid>
    <StackPanel>
        <TextBox Width="200"></TextBox>
        <TextBox Width="100"></TextBox>
        <TextBox Width="300"></TextBox>
        <TextBox Width="100"></TextBox>
        <TextBox Width="100"></TextBox>
        <TextBox Width="100"></TextBox>
    </StackPanel>
    <Grid.LayoutTransform>
        <ScaleTransform ScaleX="0.3" ScaleY="0.65"></ScaleTransform>
    </Grid.LayoutTransform>
</Grid>
4

2 回答 2

1

A TextBox,尤其是 a TextBox,在按比例缩小时会看起来很糟糕并且表现不佳。如果你想让你TextBox看起来很好并且表现得很好,那么使用FontSize它来减少它,你的字体渲染和你的光标管理会更好地工作。

于 2010-12-29T07:13:14.883 回答
0

从我发现的 msdn 答案中:

我想出的最佳解决方法是在 TextBox 上应用逆变换并根据变换比例更改 FontSize。您可以使用 Grid 包装 TextBox 以保持其布局。

可以使用下面的代码来看看效果。此示例中的 FontSize 被硬编码为 10。您可以使用 DataBinding 将其绑定到 scaletransform 并使用转换器来计算字体大小。

<Grid Background="AliceBlue">
<StackPanel>
<Border Height="100">
  <Canvas>
    <TextBox Canvas.Left="50" Canvas.Top="40" Width="500" Height="100" Background="Silver" Text="A Quick Red Fox Jumped Over A Lazy Brown Dog." FontSize="20"/>
    <Canvas.RenderTransform>
      <ScaleTransform ScaleX="0.5" ScaleY="0.5"/>
    </Canvas.RenderTransform>
  </Canvas>
</Border>
<Border Height="100">
  <Canvas>
    <Grid Canvas.Left="50" Canvas.Top="40" Width="500" Height="100">
      <TextBox Background="Silver" Text="A Quick Red Fox Jumped Over A Lazy Brown Dog." FontSize="10" LayoutTransform="{Binding ElementName=scale, Path=Inverse}"/>
    </Grid>
    <Canvas.RenderTransform>
      <ScaleTransform x:Name="scale" ScaleX="0.5" ScaleY="0.5"/>
    </Canvas.RenderTransform>
  </Canvas>
</Border>

您可以在此处查看完整主题:http ://social.msdn.microsoft.com/Forums/en/wpf/thread/aeaa3e28-a7da-4208-9676-771231c1a954?prof=required

于 2011-04-14T15:09:18.757 回答