0

我正在尝试在 Windows Phone 8 中实现聊天视图。当用户点击视图底部的 TextBox 时,视图会随着键盘的出现垂直移动,但视图底部会出现额外的填充量。我在其他应用程序中也看到了这种情况。

这是我的应用程序:

在此处输入图像描述

这是一个等效的应用程序(Whatsapp),它已经清楚地解决了这个问题。

在此处输入图像描述

有人对如何以不会破坏我观点的方式纠正此问题有任何想法吗?我尝试在 Focused/Unfocused 时手动修改填充没有成功。

4

3 回答 3

0

您始终可以尝试为底部边距提供负值。例如给 -40px 看看。

于 2013-02-22T03:31:04.520 回答
0

如果您使用的是网格,请将高度设置为文本框所在的“自动”。

设置 InputScope="默认"。

于 2013-02-22T13:45:24.767 回答
0

好消息!我已经设法解决这个问题。下面的代码完全阻止页面向上移动,然后在文本框的底部添加一个边距以将其放置在键盘上方。低于 417 的值似乎对我很有效,但您可以将其更改为您喜欢的任何值。使用此方法还可以阻止其他内容(例如对话)被推离屏幕,因为它在键盘处于活动状态时可以完全滚动。

private void TextBox_GotFocus_1(object sender, RoutedEventArgs e)
    {
        var rootFrame = Application.Current.RootVisual as PhoneApplicationFrame;
        rootFrame.RenderTransform = new CompositeTransform() { TranslateY = +0 };
        TextInput2.Margin = new Thickness(12, 0, 12, 417);
    }

private void TextBox_LostFocus_1(object sender, RoutedEventArgs e)
    {
        var rootFrame = Application.Current.RootVisual as PhoneApplicationFrame;
        rootFrame.RenderTransform = new CompositeTransform() { TranslateY = +0 };
        TextInput2.Margin = new Thickness(12, 0, 12, 12);
    }
于 2013-04-13T21:49:47.140 回答