.net 表单控制起始表单上的可视更改

.net 表单控制起始表单上的可视更改,.net,wpf,debugging,wpf-4.0,.net,Wpf,Debugging,Wpf 4.0,这是我的第一个WPF项目,我很享受它,直到我遇到这个问题。我已经按照我的意愿设计了一个表格。在VisualStudio中看起来像这样 但当我从VisualStudio调试它时,它给了我扭曲的视图。下面是截图 但是,当我找到我的.exe文件并双击它或在Visual Studio中简单地按ctrl+F5时,它为我提供了所需的输出/视图。有人能告诉我发生了什么吗?这是一个XAML,它生成的输出与您描述的类似: <Window x:Class="MiscSamples.Layout"

这是我的第一个WPF项目,我很享受它,直到我遇到这个问题。我已经按照我的意愿设计了一个表格。在VisualStudio中看起来像这样

但当我从VisualStudio调试它时,它给了我扭曲的视图。下面是截图


但是,当我找到我的
.exe
文件并双击它或在Visual Studio中简单地按
ctrl+F5
时,它为我提供了所需的输出/视图。有人能告诉我发生了什么吗?

这是一个XAML,它生成的输出与您描述的类似:

<Window x:Class="MiscSamples.Layout"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Layout" Height="300" Width="300">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>

        <Grid.RowDefinitions>
            <RowDefinition Height=".5*"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition/>
            <RowDefinition Height=".5*"/>
        </Grid.RowDefinitions>

        <Button Grid.Row="0" Grid.Column="0" Margin="2" Content="Source1"/>
        <Button Grid.Row="0" Grid.Column="1" Margin="2" Content="Source2"/>
        <Button Grid.Row="0" Grid.Column="2" Margin="2" Content="Target"/>

        <TextBox Grid.Row="1" Grid.Column="0" Margin="2"/>
        <TextBox Grid.Row="1" Grid.Column="1" Margin="2"/>
        <TextBox Grid.Row="1" Grid.Column="2" Margin="2"/>

        <DataGrid Grid.Row="2" Grid.ColumnSpan="2" Grid.RowSpan="2" Margin="2"/>

        <CheckBox Grid.Row="2" Grid.Column="2" Margin="2" VerticalAlignment="Top" Content="Select All"/>

        <Button Grid.Row="3" Grid.Column="2" Margin="2"/>
    </Grid>
</Window>

  • 删除设计器生成的所有XAML,并将其替换为该XAML
  • 此XAML生成与分辨率无关的输出。它会将所有UI元素拉伸到可用的窗口/屏幕大小
  • 请注意,VisualStudioWPF设计器不会生成与分辨率无关的内容。因此,它是完全无用的,没有人使用它
  • 编写XAML是一项令人愉快的活动,比在winforms等蹩脚的恐龙技术中手工编写UI要好得多。这就是为什么winforms需要可视化设计器,而WPF则不需要
  • 另外,在开始编写应用程序的逻辑之前,我建议您先看看@Rachel's,了解“以WPF的方式思考”的含义,并了解一下设计模式

清洁解决方案没有帮助……尝试调整VS内部的窗口大小,我认为这是您的布局问题。VS designer中的窗口大小可能与您运行的应用程序的实际窗口大小不同。那么,当我在不调试的情况下启动应用程序时,为什么它工作正常?嗯,非常奇怪。。。我想我也有这个问题。。。未找到解决方案不幸的是,Inobody使用Visual Studio WPF设计器。它会产生糟糕的、依赖于分辨率的输出,不能很好地适应不同的屏幕大小和窗口大小。您必须像我们一样学习正确地布局(通过编写XAML)。谢谢您的回答……让我试试这个。还有,别担心……我正在使用MVVM设计模式,否则我就不会为这个小应用程序选择WPF。