首先,我缩放(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>发布于 2010-12-29 15:13:15
TextBox,尤其是TextBox,在缩小规模时会看起来很糟糕,行为也很糟糕。如果你想让你的TextBox看起来更好,表现更好,那么使用FontSize来减少它,你的字体渲染和光标管理就会更好地工作。
发布于 2011-04-14 23:09:19
从我发现的msdn答案中:
我想出的最好的解决办法是在TextBox上应用逆变换,并根据变换比例更改FontSize。您可以使用网格对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
https://stackoverflow.com/questions/4551351
复制相似问题