如何在具有三个点的按钮之前进行TextBox
拉伸,但是当有人输入大量文本时不覆盖它?
我的MainWindow.xaml
<Window x:Class="Foo.Bar.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:p="clr-namespace:Foo.Bar.Properties"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel>
<DockPanel>
<Label Name="lblFileName" Content="File"></Label>
<TextBox Name="txbFileName"></TextBox>
<Button Name="btnOpenFileDialog" Content="..." HorizontalAlignment="Right"></Button>
</DockPanel>
<UniformGrid>
<Button Name="btnFoo" Content="Foo"></Button>
<Button Name="btnBar" Content="Bar"></Button>
</UniformGrid>
</StackPanel>
</Grid>
</Window>
它看起来像什么
答案 0 :(得分:3)
在DockPanel上拉伸TextBox集LastChildFill="true"
并最后添加TextBox。
顺便说一下。如果您使用的是DockPanel,则可以使用DockPanel.Dock="Right"
代替HorizontalAlignment="Right"
。
<Grid>
<StackPanel>
<DockPanel LastChildFill="True">
<Label Name="lblFileName" Content="File"></Label>
<Button Name="btnOpenFileDialog" Content="..." DockPanel.Dock="Right"></Button>
<TextBox Name="txbFileName"></TextBox>
</DockPanel>
<UniformGrid>
<Button Name="btnFoo" Content="Foo"></Button>
<Button Name="btnBar" Content="Bar"></Button>
</UniformGrid>
</StackPanel>
</Grid>
答案 1 :(得分:1)
您可以将TextBox的MaxWidth设置为您想要留在其中的空间的宽度。这将需要一些加法和减法,也许还有一点估计,但它会起作用。让它实际拉伸似乎有点奇怪,但如果你真的特别需要它,那么一个示例设置可能是:
<TextBox Name="txbFileName" MaxWidth=300*></TextBox>