Tag: stackpanel

如何为stackpanel实现click事件

我在这里检查了stackpanel类http://msdn.microsoft.com/en-us/library/system.windows.controls.stackpanel.aspx ,它没有点击事件。 我正在开发一个Windows Phone 8应用程序,我在堆栈面板上有一个文本框和一些按钮。 我想要包含一个可以单击stackpanel的function,然后将其上的控件的可见性设置为折叠,然后再次单击它们时它们将变为可见。 我该怎么做呢?

如何使用代码隐藏创建StackPanel – >边框 – >背景

我正在尝试在c#中设置TreeViewItem – > StackPanel属性,就像这个问题一样 。 在我到达我尝试编辑Border Background的部分之前,它似乎很有意义。 Borders有Background对象,但对于我的生活,我无法设置颜色或任何东西。 它似乎不一致,因为我可以通过简单地说Content = “Title”将Content添加到Label 。 无论如何,这是我的代码: public static TreeViewItem childNode = new TreeViewItem() //Child Node { Header = new StackPanel { Orientation = Orientation.Horizontal, Children = { new Border { Width = 12, Height = 14, Background = ? //How do I set the background? }, new Label […]

C#Flow Layout面板换行符或换行符

我正在为Flow布局面板添加一些控件。 在某些控件之间我需要一个换行符。 我怎么能达到这个目的。 谢谢

相关的堆栈面板尺寸

我有一个递归定义的用户控件,需要以下属性: 有两列 第一个包含一些文本周围的单个边框 第二列包含这些相同类型的控件的堆栈(递归部分) 如果第一列中的框比第二列中堆积框的总高度短,则框应该展开以使两列的高度相同。 如果第二列的总高度小于第一列中的框,则第二列堆栈中的最后一项应该展开,因此它们的高度相同。 例如,它可能看起来像这样: 好吧,到目前为止,我所做的是创建一个水平堆栈面板,其中第一个项目是包含边框和文本的停靠面板…第二列是绑定到子列表的垂直堆栈面板,创建递归用户控件。 .. 像这样.. 要求如下所示: 现在,如果堆叠的柱子更高,这可以很好地工作,但如果第一列更高,则它不起作用,并且我得到间隙。 知道如何处理这种相互高度依赖吗? 更新:因此,通过在右列堆栈面板周围添加边框,我能够看到堆栈面板实际上确实收到了最小高度更改。 但是,即使有扩展空间,堆栈面板的子节点也不会自动更新。 如果我事先将堆栈面板的最小高度固定到大的东西,孩子们就会填满。 我需要弄清楚的是如何根据堆栈面板最小高度的变化来更新孩子的身高。

在Windows Phone 8中使StackPanel可滚动

我有一个控件列表,放入一个stackpanel。 这些控件是Hubtiles,在用户创建后以编程方式添加 – 基本上是一个列表。 我需要创建添加它们的StackPanel,可滚动 – 这对此最好的方法是什么? 我应该将堆栈面板放在ScrollView中,然后使用Hubtile的实际高度增加StackPanels高度 – 使其可滚动,但不是这样,用户可以滚动无限而无需存在任何东西。 因此,只要StackPanel内的控件数达到3,它就会自动增加它的高度,如下所示: 每当StackPanel内的控件数量达到3或更高时: StackPanel.Height = StackPanel.Height + Hubtile.ActualHeight; 非常感谢!

如何使DockPanel中的项目扩展以适应WPF中的所有可用空间?

我有一个StackPanel包含StackPanel和其他一些项目。 第一个StackPanel具有垂直方向,内部方向具有水平方向。 内部有一个TreeView和一个ListView ,我希望它们扩展并适合窗口的宽度,我在窗口设置并允许用户更改。 我还希望外部StackPanel适合窗口的高度。 我该怎么做呢? 编辑:我已经转换为使用DockPanel ,并且我已经在每个元素中正确设置了DockPanel.Dock属性,并且在两个LastChildFill中都禁用了LastChildFill,布局仍然没有拉伸。 代码:

在WPF中构建可逆的StackPanel

我想构建一个带有ReverseOrder属性的自定义StackPanel ,我可以声明性地将其设置为true,以使StackPanel中的元素以正常的相反顺序出现(例如从下到上或从右到左)。 它需要在运行中可逆。 我正在考虑从StackPanel派生一个新类,但我需要知道要覆盖哪些方法。 最终解决方案 protected override System.Windows.Size ArrangeOverride( System.Windows.Size arrangeSize ) { double x = 0; double y = 0; IEnumerable children = ReverseOrder ? InternalChildren.Cast().Reverse() : InternalChildren.Cast(); foreach ( UIElement child in children ) { var size = child.DesiredSize; child.Arrange( new Rect( new Point( x, y ), size ) ); if ( Orientation […]

在StackPanel中设置项目间距的简便方法是什么?

有没有一种简单的方法来设置StackPanel内的项目之间的默认空间,所以我不必在每个项目上设置Margin属性?

“元素已经是另一个元素的孩子。”

起初,这个例外对我来说并没有多大意义。 为什么我不能多次复制这个对象? 但那不是重点: 我用一个清单。 每当我导航到一个网站时,它应该这样做: (App.Current as App).recent.ForEach(x => container.Children.Add(x)); (container =另一个StackPanel) 第一次,它的工作原理。 之后,我得到了问题标题中显示的exception。 我已经尝试使用列表框,但我刚收到ArgumentException。 我认为这些例外具有相同的来源,但我不知道我做错了什么。 请帮忙 谢谢

如何获取StackPanel中元素的位置?

假设我有一个动态填充副本的StackPanel,更改其中元素的Y位置。 我在StackPanel中有一个特定元素,我希望在StackPanel重新定位所有子节点后找到(相对于StackPanel或其他方式)的Y位置。 StackPanel sp = new StackPanel(); sp.Children.Add(someTextBlock); sp.Children.Add(element1); sp.Children.Add(element2); … someTextBlock.Text = “Lorem ipsum dolor…” // some text that pushes children of > index down // element1 got pushed down to some unknown position based on text length // now want to find the Y position of element1 我注意到这样的方法: http : //forums.silverlight.net/forums/p/16787/55881.aspx#55881不起作用,因为返回的位置是StackPanel的位置,而不是我的子元素定位。