c# - 如何使标签文本自动滚动?
问题描述
我有一个按钮,我想在其中输入一些文字,但有些文字可能太长而无法很好地放入按钮中。我想让文本在一行中水平滚动,就像 HTML 中的选框一样。我可以让它滚动一行,但是,测试文本在按钮的边缘被截断,并且那里的文本实际上会从按钮上移开,而不是在按钮的边缘消失。
我已经用谷歌搜索了我的问题的答案,几个小时后,我想是时候问我的问题了。
<Grid HeightRequest="400" Grid.Column="0" Grid.Row="0" >
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button BackgroundColor="#006633" Opacity="0.7" Grid.RowSpan="3" Grid.ColumnSpan="1">
</Button>
<Label x:Name="Label1" StyleClass="button" Grid.Row="1" Grid.Column="0" >
</Label>
</Grid>
public void Marque1()
{
Label1.Text = "This is to simulate a really long sentence for testing purposes";
Label1.HorizontalOptions = LayoutOptions.Start;
Label1.VerticalTextAlignment = TextAlignment.Center;
Label1.LineBreakMode = LineBreakMode.NoWrap;
Label1.TranslateTo(-50, 0, 8000, Easing.Linear);
}
我希望整个文本从右向左移动并重复,而不是离开按钮的边界。
解决方案
你可以检查一下,是不是你需要的效果:
public partial class MaqueText : ContentPage
{
private bool Execute { get; set; }
public MaqueText ()
{
InitializeComponent ();
Label1.Text = "This is to simulate a really long sentence for testing purposes";
Label1.HorizontalOptions = LayoutOptions.Start;
Label1.VerticalTextAlignment = TextAlignment.Center;
Label1.LineBreakMode = LineBreakMode.NoWrap;
}
protected override void OnAppearing()
{
base.OnAppearing();
Execute = true;
Device.StartTimer(TimeSpan.FromMilliseconds(50), () =>
{
Label1.TranslationX -= 5f;
if (Math.Abs(Label1.TranslationX) > Width)
{
Label1.TranslationX = Label1.Width;
}
return Execute;
});
}
protected override void OnDisappearing()
{
base.OnDisappearing();
Execute = false;
}
}
推荐阅读
- powershell - 为什么从 catch 块运行时 Invoke-WebRequest 不遵循重定向
- wix - wix bootstrapper 导致 msi 失败
- c++ - 自己的 C++ 列表类实现有问题(插入函数)
- codeigniter - 我的 Codeigniter 会话一经创建就会自动过期
- php - PHPMailer : 有没有办法回复用户提供的电子邮件地址?
- go - 编译 protobuf 并尝试在其他包中使用它时未定义的结构的 MarshalToSizedBuffer
- php - Laravel 格式化日期 in_array
- html - 如何使用 css 和 flexbox 修复输入的垂直间距
- ionic-framework - 从 ionic 3 中的 ion-item 中删除黑色基线边框栏
- javascript - 尝试调用 API 端点时,Next 不是函数