初始化网格行高不起作用

Posted

技术标签:

【中文标题】初始化网格行高不起作用【英文标题】:Init grid row height doesn't work 【发布时间】:2011-04-28 14:19:07 【问题描述】:

this is my simple try-it application 创建一个有 2 行的网格。第一行的高度绑定到一个属性。我分配给它的值仅在运行时有效。我试图让它在设计时也能工作,但我没能做到(我使用this thread 编写我的应用程序)。

请帮我看看我错过了什么。谢谢!

[编辑]

我这样做的原因是我想动态设置顶部网格行的高度,即。 Grid.Row="0",作为标题栏的高度。在我的应用程序的某处,视图加载并与标题栏重叠。

【问题讨论】:

【参考方案1】:

你试图做一个非常奇怪的把戏,这是不应该的。尝试进行以下更改。

MainWindow.xaml.cs -- 尽量保持代码隐藏清晰。

namespace WpfTryIt

    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    
        public MainWindow()
        
            InitializeComponent();
        
    

MainWindow.xaml

<Window x:Class="WpfTryIt.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow"

        xmlns:s ="clr-namespace:WpfTryIt"
        >
    <Window.DataContext>
        <s:FakeDataContext></s:FakeDataContext>
    </Window.DataContext>


        <Button Content="Binding Path=BindingHeight"/>

</Window>

还有一个新的独立数据上下文类,其行为因模式而异:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Windows;

namespace WpfTryIt

    public class FakeDataContext
    
        public int BindingHeight
        
            get
            
                // Check for design mode. 
                if ((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue))
                
                    //in Design mode
                    return 100;
                
                else
                
                    return 200;
                
            
        
    

【讨论】:

如果 FakeDataContext 的构造函数需要一些参数,我该如何修改您的代码以使其正常工作? 我还更新了我的问题以解释我为什么尝试strange trick @Nam Gi VU:在 XAML 中,您只能创建具有空构造函数的对象。如果你还想用参数实例化一个对象,看看这个问题***.com/questions/2335900/…

以上是关于初始化网格行高不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 rowspan 时 IE 设置行高不起作用

使用 rowtemplate 更改 datagridview 行高但不起作用

行高在 Outlook 2010 for HTML 电子邮件中不起作用

Ag 网格:在运行时自动调整列在 chrome/IE 11 中不起作用

DOJO:DataGrid 增量加载不起作用

为啥我的 ExtJS 4.2 网格面板排序不起作用?