कुछ इस तरह चाल करना चाहिए।
आप StackPanel
की ActualWidth
को 0 और एक सेट स्थिति, तो जब पाठ की पहली ब्लॉक हो जाता है गुप्त अन्य ब्लॉक को देखने में आ जाएगा एक के साथ सेट के लिए एक Canvas
जोड़ सकते हैं।
कारण मैं Canvas
इस्तेमाल किया है, क्योंकि Canvas
केवल तत्व यह है कि वास्तव में ClipToBounds="false"
इस भले ही Canvas
ही
की सीमा के बाहर अपनी रखा 2 TextBlock
दिखाई दे सकता है हम भी एक IValueConverter
जरूरत है पाने के लिए अनुमति देता है का समर्थन करता है यदि आप दाएं से बाएं स्क्रॉल करना चाहते हैं तो सही नकारात्मक मान।
मैंने SizeChanged
पर ईवेंट ट्रिगर भी जोड़ा ताकि यदि विंडो का आकार बदल दिया गया है तो एनीमेशन मान सही तरीके से अपडेट हो जाएंगे।
कोड:
namespace WpfApplication9
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
public class NegatingConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is double)
{
return -((double)value);
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is double)
{
return +(double)value;
}
return value;
}
}
}
Xaml:
<Window x:Class="WpfApplication9.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication9"
Title="MainWindow" Height="83" Width="222" Name="UI" Tag="Tol Level">
<StackPanel Orientation="Horizontal" x:Name="stack">
<StackPanel.Resources>
<local:NegatingConverter x:Key="NegatingConverter" />
<Storyboard x:Key="slide">
<DoubleAnimation From="0" To="{Binding Width, ElementName=canvas, Converter={StaticResource NegatingConverter}}" Duration="00:00:10"
Storyboard.TargetProperty="X"
Storyboard.TargetName="transferCurreny"
RepeatBehavior="Forever"/>
</Storyboard>
</StackPanel.Resources>
<StackPanel.RenderTransform>
<TranslateTransform x:Name="transferCurreny" X="0"/>
</StackPanel.RenderTransform>
<StackPanel.Triggers>
<EventTrigger RoutedEvent="StackPanel.Loaded">
<BeginStoryboard Storyboard="{StaticResource slide}" />
</EventTrigger>
<EventTrigger RoutedEvent="StackPanel.SizeChanged">
<BeginStoryboard Storyboard="{StaticResource slide}" />
</EventTrigger>
</StackPanel.Triggers>
<Canvas x:Name="canvas" Width="{Binding ActualWidth, ElementName=stack}">
<TextBlock Text="StackOverflow" FontSize="25" x:Name="txtKron" Canvas.Left="0"/>
<TextBlock Text="{Binding Text, ElementName=txtKron}" FontSize="25" Canvas.Left="{Binding Width, ElementName=canvas}"/>
</Canvas>
</StackPanel>
</Window>
परिणाम:
संपादित करें: बाएं, दाएं को
<StackPanel Orientation="Horizontal" x:Name="stack">
<StackPanel.Resources>
<local:NegatingConverter x:Key="NegatingConverter" />
<Storyboard x:Key="slide">
<DoubleAnimation From="0" To="{Binding Width, ElementName=canvas}" Duration="00:00:10"
Storyboard.TargetProperty="X"
Storyboard.TargetName="transferCurreny"
RepeatBehavior="Forever"/>
</Storyboard>
</StackPanel.Resources>
<StackPanel.RenderTransform>
<TranslateTransform x:Name="transferCurreny" X="0"/>
</StackPanel.RenderTransform>
<StackPanel.Triggers>
<EventTrigger RoutedEvent="StackPanel.Loaded">
<BeginStoryboard Storyboard="{StaticResource slide}" />
</EventTrigger>
<EventTrigger RoutedEvent="StackPanel.SizeChanged">
<BeginStoryboard Storyboard="{StaticResource slide}" />
</EventTrigger>
</StackPanel.Triggers>
<Canvas x:Name="canvas" Width="{Binding ActualWidth, ElementName=stack}">
<TextBlock Text="StackOverflow" FontSize="25" x:Name="txtKron" Canvas.Left="0"/>
<TextBlock Text="{Binding Text, ElementName=txtKron}" FontSize="25" Canvas.Left="{Binding Width, ElementName=canvas, Converter={StaticResource NegatingConverter}}"/>
</Canvas>
</StackPanel>
प्रश्न क्या है? वांछित व्यवहार क्या है, आपको क्या व्यवहार मिलता है? –
प्रश्न है; मैं पाठ को मार्की करना चाहता हूं लेकिन सांप – meymetkaplan
के रूप में मुझे अभी भी समझ में नहीं आता है। क्या आप एक तस्वीर पेंट कर सकते हैं? या हमें उस स्थान पर इंगित करें जहां आपने पहले इस प्रभाव को देखा है? –