biri (daraltılmış değil) gizli TextBlock
ancak sahiptir sadece yapmaktır İstediğiniz birçok satıra ve ActualHeight
numarasına görünür TextBlock
MaxHeight
. Ölçü olarak kullanılan görünmez TextBlock
, Hidden
olarak ayarlanmış Visibility
değerine sahip olmalıdır, böylece gösterilmese bile (Collapsed
tamamen kaybolmasına neden olacaktır).
Çalıştığını görmek için yeni bir projeye atabileceğiniz bir gösteri var (kaydırma çubuğunu daha kolay kullanabilmek için 4 satır kullanıyorum).
Bu kısım Window
içindeki varsayılan Grid
yerine geçer: Window
'ın Yapıcıda
<Grid TextElement.FontSize="12">
<TextBlock Name="limiter"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Width="100"
Visibility="Hidden"
Background="Gray">
</TextBlock>
<ScrollViewer MaxHeight="{Binding ElementName=limiter, Path=ActualHeight}"
Margin="40,0"
VerticalAlignment="Top"
HorizontalAlignment="Stretch"
Background="LightGray"
VerticalScrollBarVisibility="Auto">
<TextBlock Name="vis" />
</ScrollViewer>
<Button Name="AddLine"
Padding="8"
VerticalAlignment="Bottom"
HorizontalAlignment="Center"
Click="AddLine_Click">Add A Line</Button>
</Grid>
ben (ayrıca
Run
ve
LineBreak
elemanları kullanabilirsiniz gizli
TextBlock
istiyoruz ancak birçok satırları ekleyin) XAML:
var limitString = "AgjZ";
limitString = limitString + Environment.NewLine + limitString + Environment.NewLine + limitString + Environment.NewLine + limitString;
limiter.Text = limitString;
private int counter = 0;
private void AddLine_Click(object sender, RoutedEventArgs e) {
var newline = string.Empty;
if (!string.IsNullOrWhiteSpace(vis.Text))
newline = Environment.NewLine;
vis.Text += string.Format(newline + "This is line #{0}.", ++counter);
}
gizli TextBlock
ihtiyacı istediğiniz biri olarak hemen hemen aynı kapsamda bulunduğu unutmayın: Eğer çizgilerin farklı sayılarla etkisini görebilmek için Button
'ın AddLine_Click
işleyicisi, şöyle FontSize
ve yazı tipi ile ilgili diğer değerleri miras aldığını göstermek için. ScrollViewer
veya görünür TextBlock
'da bir şey ayarlanmışsa, gizlenmiş olan TextBlock
'a da gitmelidir. Gizlenmiş olanın görünür olanla aynı stile sahip olduğundan emin olmak için ciltleme kullanabilirsiniz.
Teşekkürler, publicgk, bu MÜKEMMEL. Ben aynı ızgarada 2 diğer TextBlocks var Ben de TextBox'a değiştirmek için gong kulüpler, böylece kullanıcı gerekirse/kopyala yapıştırın. – HoltDan