寫在wp8.1的filpview馬上來臨之際
一直想寫點東西,直到今天才真正動筆,唯一的原因就是太懶,太懶...
大家肯定熟悉安卓各種客戶端首頁聯(lián)動圖片廣告(比如淘寶),可以自動滾動,可以手動滑動,當(dāng)然是循環(huán)的。但是在wp上我看到的做的***的最早的當(dāng)屬愛壁紙了。
寫在wp8.1的filpview馬上來臨之際。上代碼吧。
如果有4張圖片 應(yīng)該在最前面加上***一張 再在***面加上***張 這樣當(dāng)?shù)阶钋懊婊蛘?**面的時候 直接修改 TranslateX 達(dá)到循環(huán)的效果。
- <Style TargetType="snControls:SlideView">
- <Setter Property="Background" Value="{x:Null}" />
- <Setter Property="BorderThickness" Value="0" />
- <Setter Property="TabNavigation" Value="Once" />
- <Setter Property="IsTabStop" Value="False" />
- <Setter Property="ItemsPanel">
- <Setter.Value>
- <ItemsPanelTemplate>
- <VirtualizingStackPanel Orientation="Horizontal" />
- </ItemsPanelTemplate>
- </Setter.Value>
- </Setter>
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="snControls:SlideView">
- <Grid Background="{TemplateBinding Background}"
- Height="{TemplateBinding Height}"
- Width="{TemplateBinding Width}">
- <Border Height="{TemplateBinding Height}"
- BorderThickness="{TemplateBinding BorderThickness}"
- x:Name="InnerBorder">
- <ItemsPresenter x:Name="InnerItemsPresenter">
- <ItemsPresenter.RenderTransform>
- <CompositeTransform/>
- </ItemsPresenter.RenderTransform>
- </ItemsPresenter>
- </Border>
- <ListBox VerticalAlignment="Bottom"
- HorizontalAlignment="Center"
- x:Name="listMasker"
- ItemsSource="{TemplateBinding MarkSource}">
- <ListBox.ItemsPanel>
- <ItemsPanelTemplate>
- <VirtualizingStackPanel Orientation="Horizontal" />
- </ItemsPanelTemplate>
- </ListBox.ItemsPanel>
- <ListBox.ItemTemplate>
- <DataTemplate>
- <Ellipse Margin="0 0 4 12"
- Width="8"
- Height="8"
- Tag="{Binding MarkIndex}">
- </Ellipse>
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
顏色轉(zhuǎn)換器
- public class SlideViewMarkColorConverter : IValueConverter
- {
- private SolidColorBrush brush = new SolidColorBrush();
- public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
- {
- if ((int)value == (int)parameter)
- {
- brush.Opacity = 1;
- brush.Color = Colors.White;
- }
- else
- {
- brush.Opacity = 0.4;
- brush.Color = Colors.Black;
- }
- return brush;
- }
- public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
- {
- throw new NotImplementedException();
- }
- }
MarkSource綁定實體,其中MarkIndex修改為實體的sn,如果實體數(shù)量大于1 ItemsSource前insert***一個 ItemsSource后add***個。
***如果將控件放在樞軸里面 是無法滑動的。
在頁面后置代碼loadevent里面加上
- slideview.UseOptimizedManipulationRouting = false;
- slideview.AddHandler(PivotItem.ManipulationStartedEvent, new EventHandler<ManipulationStartedEventArgs>(myPivotItem_ManipulationStarted), true);
- slideview.AddHandler(PivotItem.ManipulationDeltaEvent, new EventHandler<ManipulationDeltaEventArgs>(myPivotItem_ManipulationDelta), true);
- slideview.AddHandler(PivotItem.ManipulationCompletedEvent, new EventHandler<ManipulationCompletedEventArgs>(myPivotItem_ManipulationCompleted), true);
myPivotItem_ManipulationStarted
myPivotItem_ManipulationDelta
myPivotItem_ManipulationCompleted 事件里面判斷
- if (e.OriginalSource.GetType() == typeof(Image))
- {
- e.Handled = true;
- }
本文鏈接:http://www.cnblogs.com/dingge38/archive/2014/08/01/3884716.html