スプラッシュ スクリーンにテキストの進行状況を表示するコントロールを作成する必要があります (たとえば、読み込まれたさまざまなモジュールと起動の状態を表示します)。新しいテキストが前のテキストを滑らかなアニメーションで押し上げるように、最後の 3 行または 4 行のみをコントロールに表示したいと思います。
このコントロールまたは他のコントロールに TextBox コントロールを使用する必要がありますか? 誰かが私を正しい方向に向けることができれば、それは素晴らしいことです.
スプラッシュ スクリーンにテキストの進行状況を表示するコントロールを作成する必要があります (たとえば、読み込まれたさまざまなモジュールと起動の状態を表示します)。新しいテキストが前のテキストを滑らかなアニメーションで押し上げるように、最後の 3 行または 4 行のみをコントロールに表示したいと思います。
このコントロールまたは他のコントロールに TextBox コントロールを使用する必要がありますか? 誰かが私を正しい方向に向けることができれば、それは素晴らしいことです.
この効果は、、ListBox
テキストをListBoxItem
sとして、カスタムアニメーションを使用して非常に簡単に実現できますPanel
。つまり、は各アイテムのプロパティにオブジェクトをPanel
追加します。これにより、アイテムの位置への移動をアニメーション化できます。Transform
RenderTransform
アニメーションを作成する方法については、この非常に優れた記事Panel
を参照してください...もちろん、カスタムコードを記述して、アイテムを希望どおりに配置する必要があります。カスタムを作成したら、次のように(自分がいる名前空間への参照を含めたと仮定して)Panel
それを使用できます。ListBox
Panel
<ListBox HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<YourXmlns:YourAnimatedStackPanelPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
ちょっと考えただけですが、別の行が追加されるたびに1行ずつスクロールしたいとおっしゃいました。を使用してはScrollViewer.LineUp
どうですか?私はこれが非常に大雑把であることを知っていますが、アイデアとして...
private void ScrollBox()
{
foreach (string line in lines)
{
scrollbox.LineUp();
textbox.Text += "/r/n Next Line";
}
}