質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

1回答

2141閲覧

WPFで映画のキャスト/スタッフ一覧みたいなスライドをしたい

cancat

総合スコア313

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

1クリップ

投稿2017/08/01 11:10

こんにちは。
Windows10でWPFのアプリケーションを開発しています。
Visual Studio 2017 Communityを使っています。

###前提・実現したいこと
WPFで映画のキャスト/スタッフ一覧みたいなスライドをするときは、画面に較べて、上下に極端に長いテキストボックスをつくって、アニメーションで動かすのでしょうか?それとも、画面サイズのテキストボックスを作って、なにかする方法はあります?スライダーを自動で操作してスクロールとかでしょうか。ご助言いただければ幸いです。

###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586

です。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

xaml

1<Window x:Class="scroll.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:local="clr-namespace:scroll" 7 mc:Ignorable="d" 8 Title="MainWindow" Height="350" Width="525"> 9 <Grid> 10 <TextBlock x:Name="テキスト" HorizontalAlignment="Left" Margin="10,10,0,0" TextWrapping="NoWrap" FontSize="28" VerticalAlignment="Top" Height="1000" Width="497"/> 11 </Grid> 12</Window>

C#

1using System; 2using System.Windows; 3using System.Windows.Threading; 4 5namespace scroll 6{ 7 /// <summary> 8 /// MainWindow.xaml の相互作用ロジック 9 /// </summary> 10 public partial class MainWindow : Window 11 { 12 public MainWindow() 13 { 14 InitializeComponent(); 15 Add_Text(); 16 17 DispatcherTimer timer = new DispatcherTimer(); 18 timer.Interval = TimeSpan.FromSeconds(0.05); 19 timer.Tick += new EventHandler(Action); 20 timer.Start(); 21 } 22 23 private void Add_Text() 24 { 25 テキスト.Text = "あいうえお\n" + 26 "かきくけこ\n" + 27 "さしすせそ\n" + 28 "たちつてと\n" + 29 "なにぬねの\n" + 30 "はひふへほ\n" + 31 "まみむめも\n" + 32 "やゆよ\n" + 33 "らりるれろ\n" + 34 "わをん"; 35 } 36 37 int n = 10; 38 void Action(object sender, EventArgs e) 39 { 40 Thickness margin = new Thickness(10, n -= 1, 0, 0); 41 テキスト.Margin = margin; 42 } 43 } 44} 45

上下に極端に長いテキストボックスをつくって、アニメーションで動かすのでしょうか?

アニメーションは分からないのでTimerを使ってやってみました。
#追記
xamlのみで。

xaml

1<Window x:Class="scroll.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:local="clr-namespace:scroll" 7 mc:Ignorable="d" 8 Title="MainWindow" Height="350" Width="525"> 9 <Window.Resources> 10 <Storyboard x:Key="Anime"> 11 <DoubleAnimation 12 Storyboard.TargetName="テキスト" 13 Storyboard.TargetProperty="(Canvas.Top)" 14 To="-1000" 15 Duration="0:1:0"/> 16 </Storyboard> 17 </Window.Resources> 18 <Canvas> 19 <Canvas.Triggers> 20 <EventTrigger RoutedEvent="Canvas.Loaded"> 21 <BeginStoryboard Storyboard="{StaticResource Anime}"/> 22 </EventTrigger> 23 </Canvas.Triggers> 24 <TextBlock x:Name="テキスト" HorizontalAlignment="Left" Canvas.Top="10" TextWrapping="NoWrap" FontSize="28" VerticalAlignment="Top" Height="1000" Width="497"> 25 あいうえお<LineBreak/> 26 かきくけこ<LineBreak/> 27 さしすせそ<LineBreak/> 28 たちつてと<LineBreak/> 29 なにぬねの<LineBreak/> 30 はひふへほ<LineBreak/> 31 まみむめも<LineBreak/> 32 やゆよ  <LineBreak/> 33 らりるれろ<LineBreak/> 34 わをん  <LineBreak/> 35 </TextBlock> 36 </Canvas> 37</Window> 38

参考
WPF4.5入門 その48 「WPFのアニメーション その1」
WPFサンプル:イベントトリガーでアニメーションを起動する
WPF: XAML, C# で TextBlock などの要素内の文字列を改行させる

投稿2017/08/01 12:43

編集2017/08/01 13:19
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cancat

2017/08/01 12:53

うわ。ありがとうございます。 タイマーもいいですよね。単純でわかりやすいし。 で、やっはりこの動かすのが簡単なのでしょうかね。 もうちょっとスマートななにかがあるような気がしていたのですが、ま、こんなものでしょうか。 感謝です。
退会済みユーザー

退会済みユーザー

2017/08/01 13:17

私はWPF初心者なので、信用してはいけません。 正直、私も微妙な方法だと思うので他に良い方法があれば 知りたいと思います。 何はともあれ、どういたしまして。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問