wpf+.net 4.5 surface2.0 = 异步多点触控 时间轴 part5

20 篇文章 0 订阅
19 篇文章 0 订阅

可使用多种方式将事件(UserControl 或Window或其他UIElement)内容呈现 以下是2个例子:

视频方式:

 

<UserControl xmlns:s="http://schemas.microsoft.com/surface/2008"  x:Class="Transvalue.Timeline.EventVideoControlItem"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
	xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
             mc:Ignorable="d" 
            Width="600" Height="600">
    <i:Interaction.Behaviors>
        <ei:TranslateZoomRotateBehavior/>
    </i:Interaction.Behaviors>
    <Grid Width="600" Height="600">
        <Grid.Background>
            <ImageBrush ImageSource="../Images/dyck.png"/>
        </Grid.Background>
        <Grid.RowDefinitions>
            <RowDefinition Height="83*"/>
            <RowDefinition Height="343*"/>
            <RowDefinition Height="174*"/>
        </Grid.RowDefinitions>
        <TextBlock x:Name="tbTitle" HorizontalAlignment="Left" 
                           Margin="218,46,0,0" TextWrapping="Wrap" 
                           Text="" VerticalAlignment="Top"
                           Height="32" Width="190" 
                           FontFamily="/Transvalue.Timeline;component/Fonts/#Segoe UI Light" 
                           FontSize="22" Foreground="White"/>
        <TextBlock x:Name="tbContent" HorizontalAlignment="Left" 
                           Margin="108,0,0,0" TextWrapping="Wrap" 
                           Text="" VerticalAlignment="Top" 
                   Height="97" Width="376" FontFamily="/Transvalue.Timeline;component/Fonts/#Segoe UI Light" Foreground="White" FontSize="20" Grid.Row="2"/>

        <MediaElement HorizontalAlignment="Left" Height="303" Margin="69,19,0,0" 
                      VerticalAlignment="Top" Width="451" 
                      Name="mediaContainer" LoadedBehavior="Manual" Grid.Row="1" ScrubbingEnabled="True" Stretch="Fill"/>

    </Grid>
</UserControl>


 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Microsoft.Surface.Presentation.Controls;

namespace Transvalue.Timeline
{
    /// <summary>
    /// EventVideoControlItem.xaml 的交互逻辑
    /// </summary>
    public partial class EventVideoControlItem : UserControl
    {
        public EventVideoControlItem()
        {
            InitializeComponent();
            this.DataContextChanged += ((sender, e) =>
              {
                  if (null != this.DataContext)
                  {
                      Console.WriteLine("开始赋值");
                      TimelineEventItem item = this.DataContext as TimelineEventItem;
                      tbContent.Text = item.Content;
                      tbContent.ToolTip = item.Title;
                      mediaContainer.Source = new Uri(item.MedieUrl);
                      mediaContainer.MediaEnded += ((s, args) =>
                        {
                            Console.WriteLine("播完了");
                            mediaContainer.Play();
                        });
                      mediaContainer.Play();
                  }
              });
        }
    }
}


 

 

 

翻页书方式(书控件另行制作,会放到项目源码里到我的资源):

<Custom:SurfaceWindow
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:Custom="http://schemas.microsoft.com/surface/2008" 
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
	xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
    xmlns:BookControl="clr-namespace:TransvalueSystem.Control.BookControl" 
    x:Class="Transvalue.Timeline.EventControlBookItem" 
    WindowStyle="None" Topmost="True"
             mc:Ignorable="d" WindowState="Normal"
    AllowsTransparency="True" Background="Transparent" WindowStartupLocation="CenterScreen"     
            Height="600" Width="600">
    <Window.Resources>
        <ControlTemplate x:Key="ButtonControlTemplate" TargetType="{x:Type Button}">
            <Grid Margin="0,0,0,0" Name="content" TouchDown="Button_TouchDown" TouchEnter="Button_TouchDown">
                <Grid.Background>
                    <ImageBrush ImageSource="../Images/gbdy.png" Stretch="None"/>
                </Grid.Background>
            </Grid>

        </ControlTemplate>
    </Window.Resources>
    <i:Interaction.Behaviors>
        <ei:FluidMoveBehavior />
    </i:Interaction.Behaviors>
    <Grid Margin="0,10,-6,-39">

        <Grid.Background>
            <ImageBrush ImageSource="../Images/dyck.png"/>
        </Grid.Background>
        <Grid.RowDefinitions>
            <RowDefinition Height="0.138*"/>
            <RowDefinition Height="0.572*"/>
            <RowDefinition Height="0.29*"/>
        </Grid.RowDefinitions>
        <TextBlock x:Name="tbTitle" HorizontalAlignment="Left" 
                           Margin="218,46,0,0" TextWrapping="Wrap" 
                           Text="" VerticalAlignment="Top"
                           Height="32" Width="190" 
                           FontFamily="/Transvalue.Timeline;component/Fonts/#Segoe UI Light" 
                           FontSize="22" Foreground="White"/>
        <TextBlock x:Name="tbContent" HorizontalAlignment="Left" 
                           Margin="108,4,0,0" TextWrapping="Wrap" 
                           Text="" VerticalAlignment="Top" 
                   Height="81" Width="372" FontFamily="/Transvalue.Timeline;component/Fonts/#Segoe UI Light"
                   Foreground="White" FontSize="20" Grid.Row="2"/>


        <BookControl:BookViewer HorizontalAlignment="Left" Margin="58,10,0,7" 
                                Grid.Row="1" Width="483" x:Name="imgContainer"
                              />


        <Button Content="Button" HorizontalAlignment="Left" Margin="531,46,0,0" VerticalAlignment="Top" Width="43" Height="37" 
                Template="{DynamicResource ButtonControlTemplate}" 
                RenderTransformOrigin="0.279,0.459" TouchDown="Button_TouchDown" TouchEnter="Button_TouchDown" Click="Button_Click"/>
    </Grid>

</Custom:SurfaceWindow>


 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Microsoft.Surface.Presentation.Controls;

namespace Transvalue.Timeline
{
    /// <summary>
    /// EventControl.xaml 的交互逻辑
    /// </summary>
    public partial class EventControlBookItem : SurfaceWindow
    {
        public EventControlBookItem()
        {
            InitializeComponent();
            this.DataContextChanged += ((sender, e) =>
            {
                if (null != this.DataContext)
                {
                    TimelineEventItem item = this.DataContext as TimelineEventItem;
                    tbContent.Text = item.Content;
                    tbContent.ToolTip = item.Title;
                    imgContainer.BookPath = item.ImgUrl;
                }
            });
        }

        private void Button_TouchDown(object sender, TouchEventArgs e)
        {
            this.Close();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }
    }
}


   

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值