canvasに作ったLabelをプログラムでcanvasの中の座標を指定して移動させたいです
どなたか知恵を貸してください
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
https://social.msdn.microsoft.com/Forums/vstudio/en-US/667a204a-59ea-4fc6-b289-1c7d84c26b09/how-to-set-canvasleft-in-codebehind?forum=wpf
回答1件
0
ベストアンサー
※まずはご自分でコードを書いてみるのが基本です。
How to set Canvas.Left in codebehind? での内容を参考にさせていただき、Canvas
内のLabel
を500ミリ秒ごとに右に移動させるデモです。
xaml
1<Window x:Class="WpfApp1.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:WpfApp1" 7 mc:Ignorable="d" 8 Title="MainWindow" Height="80" Width="400"> 9 <Grid> 10 <Canvas HorizontalAlignment="Left" Width="380" Margin="0,0,0,0"> 11 <Button Content="Start" Canvas.Left="10" Canvas.Top="10" Width="75" Click="Button_Click"/> 12 <Label Name="Label1" Content="Label is here." Canvas.Left="100" Canvas.Top="10"/> 13 </Canvas> 14 </Grid> 15</Window>
C#
1using System; 2using System.Windows; 3using System.Windows.Controls; 4 5namespace WpfApp1 6{ 7 public partial class MainWindow : Window 8 { 9 public MainWindow() 10 { 11 InitializeComponent(); 12 } 13 14 private void Button_Click(object sender, RoutedEventArgs e) 15 { 16 var timer = new System.Windows.Threading.DispatcherTimer(); 17 timer.Interval = new TimeSpan(0, 0, 0, 0, 500); 18 timer.Tick += new EventHandler((obj, ea) => 19 { 20 var left = (double)Label1.GetValue(Canvas.LeftProperty); 21 left += 10.0; 22 Label1.SetValue(Canvas.LeftProperty, left); 23 }); 24 25 timer.Start(); 26 } 27 } 28}
投稿2020/01/22 00:12
総合スコア9183
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。