我正在开发Windows Phone应用程序,并且我遇到了这个问题: 我有一个列表控件显示我的搜索结果,但是当打开键盘时,我的某些结果由于键盘而不可见... 有没有办法缩小控件直到键盘边框?为了查看所有结果. 即使打开键盘,我也想滚动直到结果结束. 解决方案 有我的解决方案 public class ResizeContentOnKeyboardShowingBehavior : Behavior { private readonly double _screenHeight; public ResizeContentOnKeyboardShowingBehavior() { _screenHeight = Window.Current.Bounds.Height; } protected override void OnAttache
以下是关于 layout 的编程技术问答
我正在构建Windows Phone 8应用程序,该应用程序使用Pivot控件为不同用户显示给定日期的数据.每个PivotItem都容纳不同的用户. 当前我的应用程序仅支持肖像方向,但我也想支持景观取向.通过这样做,我希望每个PivotItem不再仅显示一个日期的数据,但是在整个星期中,请大大更改布局. 我的第一种方法是通过新布局导航到一个新页面,但是在此研究中,我了解到,正确/最佳方法可能是更改DataTemplate.我认为应该在枢轴控制项目网板上. 但是,我无法转过头来工作.因此,我的问题是,当方向更改时,更改布局的最佳方法是什么 - 导航到新页面或更改DataTemplate? > 编辑 - 当前枢轴控制的代码
我正在尝试修改全景内容的大小,以使其没有边距并伸展整个屏幕宽度/高度.到目前为止,我还没有运气来修改模板的副本.负边距可以照顾左/顶部,但是下一个全景项目总是从右边缘窥视,即使我设法拉伸了全景项目,下一个项目也在屏幕的右侧重叠. 任何想法如何修改全景图,以便实际的全景仪占整个屏幕(800x480),以下全景项目始终是上一个Panoramaitem的左侧的480px,以便您看不到下一个项目的一部分. 为什么我要修改全景?因为控件具有内置功能,可以实现我想要的所有操作(我正在构建一个全屏图片查看器,并支持Flick手势).我只想希望全屏幕是全屏 全景建筑 http://msdn.microsoft.com/en -us/library/ff941126%28V = vs.92%29.aspx 解决方案 c# public class PanoramaFullScreen : Panorama { protected override System.Wind
im创建一个应用程序,我有一个标题,所有页面也相同(也是一个页脚,但使用应用程序栏创建了一个疾病). 我的问题是,如果我不想在每个页面中重复标题(编码),那么最好的方法是什么. 谢谢. 解决方案 最好的是创建以下内容: 标题的UserControl 页脚的UserControl 所有页面或USERCORTROL都应显示这些项目. 其他解决方案 看模板项目,以便您可以拥有多个视图和多个区域 我也会看棱镜: http://msdn.microsoft.com/en-us/library/gg406140.aspx 其他解决方案 取决于您用作标头和页脚的内容,如果是简单的文本,则可以使用默认页面模板并将文本绑定到app.xaml中定义的静态资源,如果它更复杂,则您可以按建议创建一个用户控件.您也可以创建动画并在显示页面时播放此动画. app.xaml中的静态资源作为Application.Resource:
你好,还有其他开发人员! 我正在开发Windows Phone 7应用程序,我无法弄清楚我认为对更丰富的问题来说是一个简单的问题. 假设我有一个由两个元素组成的布局:listBox(填充了大量项目)和一个文本框架(向用户提供一些基本说明). 当设备处于肖像方向时,我希望它们是一个高于另一个,并且我希望当设备方向变化到景观时,我希望它们彼此相邻. 对于肖像方向,我正在使用网格布局管理器,因为它使我可以定义行的高度,例如SO ...行0 Height="2*",第1行1 Height="*" ListBox位于第1行中的第1行中.设备切换为景观. ,但这只是我的主意.我不知道如何优雅地完成此操作.也许有更好的方法?也许这是正确的方法,并且有一些目的是为此目的而构建的方法? 谢谢您的建议! 解决方案 对于默认肖像配置而言,这是什么: -
我有一个Silverlight页面,我希望在肖像和景观模式下具有低于外观.本质上,有三张图像在网格中排列.大图像跨越了两列.当手机旋转时,图像会旋转,但整体布局却没有.小图像保留在靠近背面/Windows/搜索按钮的近处,并且大图像保留在手机顶部. 我尝试了多种方法来实现此效果,但是它们都以一种或另一种方式证明了它们并不令人满意.我希望有人能指出我缺少的东西,或者至少可以防止其他人浪费4或5天的结论,与我相同的结论. 大胆的问题: 我尝试的第一件事是在电话旋转更改为景观时将旋转式元素应用于Layurout元件并将其旋转-90度.我必须将布局根的高度和宽度硬编码为800和400,而不是"自动",或者被压缩.该解决方案几乎有效,但是在绘制页面后,rotateTransform将应用.由于它是在800x400屏幕上作为400x800图像绘制的,因此未绘制前200个和底部200像素.这是在旋转并且(现在)左右部分丢失后显而易见的. 是否有一种方法可以迫使布局引擎从屏幕上抽出屏幕,以便
如果拖动窗口的顶部或左边框,则应注意,窗口的相反边缘会振动 - 它被拖动了,但是重新调整以增加大小. 当您有动态调整大小的项目时,问题要糟得多 - 然后,一堆控件开始在屏幕上滑动和调整大小. 有什么方法可以防止这些瞬态效果? 例如.也许响应WM_SIZE之类的消息的特殊可以抑制这一点?我不知道. (似乎在我看到的每个框架中,甚至是普通的Win32.只需打开探险家或其他东西,然后拖动其顶部或左边缘,您就会明白我的意思.) 解决方案 响应WM_WINDOWPOSCHANGING消息,并在flags WINDOWPOS结构的成员中设置SWP_NOCOPYBITS标志. 其他解决方案 2018年更新. WM_WINDOWPOSCHANGING及相关WM_NCCALCSIZE的技巧经常在SO上提到的技巧在XP/Vista/7中运作良好,但不再足够win8/10,因为Aero添加了一个新的调整问题,以掩盖或恶化,较旧的问题. Win8/10问题很难解决,
我正在尝试查找OS X上的已记录为单位的(或者,如果这是我的唯一选择)API,以查询Window服务器的Windows列表,然后导致Windows移动和调整大小.谁能向我指向正确的方向?我想我会从Win32下的Findwindowex和Movewindow开始. 请注意,我想从外部过程中执行此操作 - 我不问如何仅控制自己的应用程序的窗口大小和位置. 解决方案 使用可访问性API.使用此API,您可以连接到一个过程,获取窗口列表(实际上是一个数组),获取每个窗口的位置和大小,并在您喜欢的情况下更改窗口属性. 但是,只有在用户启用了辅助设备(系统prefs->通用访问)的辅助设备时,应用程序才能使用此API,在这种情况下,所有应用程序都可以使用此API,或者您的应用程序是一个应用程序值得信赖的鉴定应用程序(即使未检查此选项,它也可能使用API).可访问性API本身提供了必要的功能,以使您的应用程序受到信任 - 基本上您必须成为根(使用安全服务来请求用户的根本权限),
我创建了一个活动,其中添加了一个按钮,该按钮在单击时抛出弹出窗口.这是ShowPopup()方法的代码: private void showPopup() { LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.popup_layout, (ViewGroup) findViewById(R.id.popup_element), false); final PopupWindow pwindo = new PopupWindow(layout, LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT, true); Button btnAgree = (Button
作为标题所述,我试图将布局元素的宽度设置为等于高度(设置为与父匹配).我已经尝试从高度参数以编程为程序上设置宽度参数,但这显示为-1而不是实际高度(因为它与父匹配).有人知道我如何创建大小动态的方形布局元素?谢谢. 解决方案 所以我一直在为这样的事情做的事情 - 我不知道它是理想的,但是效果很好 - 是使用ViewTreeObserver.OnGlobalLayoutListener.这样的东西: View myView = findViewById(R.id.myview); ViewTreeObserver observer = myView.getViewTreeObserver(); observer.addOnGlobalLayoutListener(new SquareLayoutAdjuster()); class SquareLayoutAdjuster implements ViewTreeObserver.OnGlobalLayout
我试图在AlertDialog中夸大自定义布局.我明白了,但是宽度扩展到fill_parent.我已经在XML文件中尝试了WARP_CONTENT或自定义大小(示例200DP),并且它曾经是fill_parent. 我想放置自己的身高和宽度,例如(200DP,150DP),我该如何放置? 我已经阅读并尝试了这个网络中的一些解决方案,但是我无法解决问题,有人可以帮助我吗?预先感谢您. 我在这里给我的Java代码 `>View ff = getLayoutInflater().inflate(R.layout.customlayout, null); >>Button menu = (Button)ff.findViewById(R.id.menu); >> menu.setOnClickListener(new View.OnClickListener() {
如何在表观视图中强制单个列宽度? 假设我有一个按钮将所有列的宽度重置为预定义的值.我的tableview配置为具有UNCONSTRAINED_RESIZE_POLICY.现在,如果我手动调整两个列,然后点击重置按钮,则什么也不会发生. 我正在使用setPrefWidth()设置首选列宽度.我什至在之前和之后检查了值,它会根据需要进行更改.但是,视觉表示保持不变.是否有可能将真实的列强制调整到所需的宽度大小?我可以告诉我的桌子重新延长,更新或重新划痕吗? Javafx是否提供了SWT中的pack()诸如pack()之类的函数,以迫使组件调整其首选宽度/高度? 解决方案 尝试将列宽度绑定到表的宽度: col1.prefWidthProperty().bind(col1.getTableView().widthProperty().multiply(1.5).divide(2)); col2.prefWidthProperty().bind(col2.getTa
我有一个具有固定宽度布局的网页.它以前使用了表,我使用div进行了重新创建.总的来说,我对此感到满意(页脚现在很好地将其贴在底部). 但是有一个问题 - 我无法控制内容,有时可能包含非常宽的元素.在当前(DIV)布局中,如果元素不适合屏幕,则必须向右滚动(您无法避免),并且页面框架结束,您会看到空白(即没有标题,页脚). 其原因是DIV仅扩展到可见窗口. 我只看到如何解决它的两个选项: 回到表布局.它在此情况下正常工作 - 如果内容更宽,则超越窗框的扩展. 实现JavaScript解决方案,该解决方案将检查宽度并在需要时将其展开.但是我认为这是错误的. 有什么更好的解决方法吗?我想实现与表相似的行为,但是使用divs. ,请让我知道您是否需要更多信息,谢谢 编辑:我需要在IE6上使用它(或至少IE7如果IE6看起来不丑陋)及以上 +所有现代浏览器. edit2:这是一个示例,您可以在其中看到我在说什么: 解决方案 no-Braner(s