Scrollviewer 和 SIP 问题 (WP7.5 Mango)

2024-01-17

我正在编写一个包含注册表单的应用程序。该表单包含多个文本输入框,因此使用 ScrollViewer 将它们全部显示在一页上。

以下是我正在使用的 XAML 代码的精简示例:

<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
        <TextBlock x:Name="ApplicationTitle" Text="SCROLLVIEWER TEST" Style="{StaticResource PhoneTextNormalStyle}"/>
        <TextBlock x:Name="PageTitle" Text="registration" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
    </StackPanel>

    <ScrollViewer Grid.Row="1">
        <StackPanel>
            <TextBlock Text="Hello" Margin="12,0,0,0"/>
            <TextBox />
            <TextBlock Text="Hello1" Margin="12,0,0,0"/>
            <TextBox />
            <TextBlock Text="Hello2" Margin="12,0,0,0"/>
            <TextBox />
            <TextBlock Text="Hello3" Margin="12,0,0,0"/>
            <TextBox />
            <TextBlock Text="Hello4" Margin="12,0,0,0"/>
            <TextBox />
            <TextBlock Text="Hello5" Margin="12,0,0,0"/>
            <TextBox />
            <TextBlock Text="Hello6" Margin="12,0,0,0"/>
            <TextBox />
            <TextBlock Text="Hello7" Margin="12,0,0,0"/>
            <TextBox />
            <TextBlock Text="Hello8" Margin="12,0,0,0"/>
            <TextBox />
            <TextBlock Text="END" Margin="12,0,0,0"/>
            <TextBox />
        </StackPanel>
    </ScrollViewer>
</Grid>

(请注意,ScrollViewer 位于网格单元内,这意味着标题面板应始终保持在屏幕上)

滚动效果非常好,所以这不是问题。但是,当用户选择文本框输入数据(即打开软键盘)时,系统会推送整个页面的内容(包括注册标题面板),这不是预期的行为。 [请参阅 Windows Phone 上的“联系人”应用程序并尝试添加新联系人。这包含类似的结构,但 ScrollViewer 仅通过向上推送滚动查看器中的内容来正确运行]

测试用例

  • 选择屏幕顶部附近可见的文本框以打开键盘。
  • 尝试在键盘打开的情况下滚动到页面底部。
  • 页面底部的项目无法访问。

or

  • 选择屏幕底部附近可见的文本框。
  • 整个页面的内容被上推。
  • 尝试在键盘打开的情况下滚动到页面顶部。
  • 页面顶部的项目无法访问,并且标题面板在键盘关闭之前永远不会返回视图。

任何有关解决此问题的帮助将不胜感激。谢谢。


问题是 ScrollViwer 高度在键盘出现后没有修改,因此它被剪裁了。一种解决方案是修改滚动视图的高度(根据键盘高度),然后重新定位它(这可能会让您有些头痛)。

另一个问题是知道键盘何时出现 - 您可以在所有文本框上注册 GotFocus/LostFocus 事件,但这不是一个很好的解决方案。这可能对您有帮助:http://blogs.msdn.com/b/jaimer/archive/2010/11/05/guessing-if-the-sip-is-visible-in-a-windows-phone-application.aspx http://blogs.msdn.com/b/jaimer/archive/2010/11/05/guessing-if-the-sip-is-visible-in-a-windows-phone-application.aspx

希望这有所帮助 :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scrollviewer 和 SIP 问题 (WP7.5 Mango) 的相关文章

  • WP7 TimePicker 选择 24 小时格式的时间

    有没有办法让WP7的TimePicker允许用户选择24小时格式的时间 如果我将 TimePicker ValueStringFormat 设置为 0 HH mm ss 它会以 24 小时格式显示 但当我单击它时 输入时间仍为 12 小时格
  • 将 Windows Phone 7 应用程序中的图像文件上传到 PHP

    我正在尝试从图片库 在 WP7 上 上传图片并将其保存在服务器上的文件夹中 在服务器上 我使用 PHP 通过 POST 方法接收文件 PHP 代码是
  • Windows Phone Soap/添加 Web 参考问题

    我有一个 SOAP 由 Java 提供支持 服务 我正在尝试连接到 WP7 使用Add gt Service Reference生成代理客户端 但不幸的是 删除了 WP7 和 完整 NET 4 上方法的所有参数 使用 slsvcutil e
  • 在Webbrowser控件中使用本地图像

    我在 Wp7 应用程序中使用 Webbrowser 控件 但我似乎无法将 App 目录中的图像放入 Web 浏览器中 我已将一些图像放入与 cs 和 xaml 文件位于同一目录中的文件夹中 现在我尝试将它们放入网络浏览器控件中 但我似乎无法
  • 是否可以在 Windows Phone 7/8 上使用 protobuf-net 序列化/反序列化不可变类型?

    是否可以在 Windows Phone 7 8 上使用 protobuf net 序列化 反序列化类型 我尝试了下面的代码 似乎不支持构造函数跳过 即 UseConstructor false 因此我创建了一个无参数构造函数 但反序列化失败
  • Windows Phone 7 和 Windows Phone 8 支持什么框架?

    Windows Phone 7 和 Windows Phone 8 支持什么框架 我在网上找不到太多关于此的信息 但我听说WP7不支持完整的框架 如果是的话 WP7 和 WP8 的框架有哪些限制 奖金问题 WP7和WP8的编程仅限于C 吗
  • 过滤 ObservableCollection?

    当我将 ListBox 直接绑定到 ObservableCollection 时 我会在 ListBox 中显示实时更新 但是一旦我在混合中添加其他 LINQ 方法 我的 ListBox 就不再收到 ObservableCollection
  • WPF:带滚动条的 ItemsControl(ScrollViewer)

    我跟着this http compilewith net 2008 05 making itemscontrol scroll html关于如何向 ItemsControl 添加滚动条的小 教程 它在设计器视图中工作 但在我编译和执行程序时
  • Silverlight 绑定到 TranslateX

    我有一个简单的 winphone7 应用程序 但我认为这适用于任何 silverlight 基本上我有一个椭圆 我想用平移 X 和 Y 属性来移动它 这是我的尝试
  • Android:当焦点位于 EditText 上时自动显示软键盘

    我正在使用显示一个输入框AlertDialog The EditText当我调用时 对话框本身会自动聚焦AlertDialog show 但软键盘不会自动显示 如何让软键盘在对话框显示时自动显示 并且没有物理 硬件键盘 类似于当我按下 搜索
  • 在WP7中调用普通的Web服务

    我有普通的 NET Web 服务 不是 WCF 服务 我已使用服务参考将此服务添加到我的 WP7 项目中 因为我们没有 通常我们会使用 添加服务引用 选项添加 WCF 服务 但这里我使用 添加服务引用 选项添加普通的 Web 服务 例如我有
  • 无法在 WP7 上使用调度程序

    我正在寻找使用调度程序在 UI 线程上调用代码的参考 他们说要这样做 Dispatcher BeginInvoke gt OnSendSuccessful 但我收到编译器错误 指出我无法在静态上下文中访问非静态方法 BeginInvoke
  • 带有图像或路径的自定义滑块

    我的 WP7 应用程序中有一个滑块 我想重新设计它的样式 我的默认模板有问题 我做了类似的事情 但我无法将拇指 绑定 到该值
  • 如何在 Windows Phone 7 中创建自定义文本框?

    是否可以通过创建自定义文本框来处理 sip 我想创建一个自定义文本框 gt 创建获得焦点事件 gt 在我的自定义文本框的焦点上而不是 SIP 上 我的自定义键盘应该打开 要求 如何创建自定义文本框 打开自定义键盘而不是 SIP 获取文本字段
  • 原生编程对于移动开发有何优势?

    我需要为一家公司在一些主要的移动操作系统上开发应用程序 特别是 iOS Android 和 WP7 我最初计划为三种不同的操作系统编写三个独立的应用程序 每个应用程序都使用本机 SDK 然而 这样做有什么好处吗 有许多可用的跨平台工具 Se
  • Android 隐藏键盘不起作用 - 无法隐藏软键盘

    我正在 Droid Incredible 上进行开发 并且也在 1 5 AVD 模拟器上进行了测试 我的选项卡小部件中的一个选项卡由一个列表视图和一行包含 EditText 和 Send 按钮 用于聊天功能 组成 单击 发送 后 我使用以下
  • 以编程方式将内容添加到滚动查看器,滚动条停止工作

    好吧 我不太熟悉强大的 WPF 但我尝试了一个有趣的项目来跳入其中 我制作了一个简单的 RSS ATOM 提要查看器 它从 RRS 或 ATOM 提要中提取 HTML 并将其粘贴到浏览器控件中 该控件添加到堆栈面板中 这是 ScrollVi
  • Windows Phone 7 中的 ASCII 编码

    有没有办法在 Windows Phone 7 中使用 ASCIIEncoding 除非我做错了什么Encoding ASCII不存在 我需要它来进行 C gt PHP 加密 因为 PHP 在 SHA1 加密中仅使用 ASCII 有什么建议么
  • Windows Phone 目前是否有用于接近传感器和光传感器的 API?

    Windows Phone 目前是否有用于接近传感器和光传感器的 API 我想访问这两个传感器 但找不到API 有一些方法可以使用它们吗 很不幸的是 不行 此处列出了可用的传感器 API http msdn microsoft com en
  • 多个事件处理程序触发,为什么?

    我很难解决这个问题 我已经呆了三个小时了 但我仍然不明白为什么会这样 这是代码 private void Catagory SelectionChanged object sender SelectionChangedEventArgs e

随机推荐