【发布时间】:2021-12-24 07:27:12
【问题描述】:
我使用 Xamarin.Forms,我想在我的应用程序上实时(按计时器)创建可移动标签。我创建了这个逻辑:
XAML 代码:
<ScrollView Grid.Row="0" VerticalOptions="End"
Orientation="Horizontal"
HorizontalScrollBarVisibility="Never"
Margin="0, 0, 0, 40"
x:Name="TickerTitleSound"
IsEnabled="False"
>
<Label
Text="{Binding SpecialText}" />
</ScrollView>
以及后面的 C# 代码:
// Direction - bool class member
TickerTitleSound.Scrolled += (sender, e) =>
{
double scrollingSpace = TickerTitleSound.ContentSize.Width - TickerTitleSound.Width;
if(TickerTitleSound.ScrollX >= scrollingSpace)
{
Direction = false;
}
else if(TickerTitleSound.ScrollX <= 0)
{
Direction = true;
}
};
Timer timerSound = new Timer() { Interval = 100 };
timerSound.Elapsed += async (o, e) =>
{
await Task.Run(() =>
{
Device.BeginInvokeOnMainThread(() =>
{
if (Direction)
{
TickerTitleSound.ScrollToAsync(TickerTitleSound.ScaleX + 10, 0, false);
}
else
{
TickerTitleSound.ScrollToAsync(TickerTitleSound.ScaleX - 10, 0, false);
}
});
});
};
timerSound.Start();
但是这段代码不起作用。我想得到这个结果:
这是怎么做的?我有
【问题讨论】:
-
你为什么用
ScaleX而不是ScrollX?
标签: c# xamarin xamarin.forms