【发布时间】:2021-03-23 05:30:54
【问题描述】:
我有以下DataTemplate,其中内部是一个Grid,带有一个“TextBlock”和我想与中心对齐的TextBox:
<DataTemplate x:Key="OneSettingsEntryTemplate" DataType="{x:Type templateHelper:InputText}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Style="{StaticResource StandardTextBlocksStyle}"
Text="{Binding Text, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<TextBox Grid.Column="1"
Style="{StaticResource DefaultTextBoxesStyle}"
Text="{Binding Content, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</Grid>
</DataTemplate>
在我的UserControls 之一中,我在使用模板的地方有以下代码:
<StackPanel DataContext="{Binding ElementName=ControlForProjectSettings, Path=ViewModel}"
HorizontalAlignment="Center">
<TextBlock Style="{StaticResource HeadingTextBlocksStyle}"
Text="Project settings"/>
<ListView Background="#DAE7F5"
ItemsSource="{Binding ProjectSettingEntries}"
ItemTemplate="{StaticResource OneSettingsEntryTemplate}">
</ListView>
</StackPanel>
当我运行我的应用程序并显示一些项目时,最后一个项目的文本较长,因此 TextBox 会向右翻转。 Application Image
我尝试在 Grid 中使用 HorizontalAlignment 和 VerticalAlignment 属性,或者也使用 DockPanel 而不是 Grid 但找不到解决方案。有什么想法吗?
【问题讨论】:
-
我想这会对你有所帮助:stackoverflow.com/a/2265714/4112136
-
是的,它解决了我的问题。谢谢!
标签: c# xaml textbox grid alignment