私はタイムライン コントロールに取り組んでいます。
「00:00」マーカーを実際の値にバインドする必要があります。写真に示されている最初のものは「00:01」である必要があります。次の青い線は「00:02」である必要があります
私の設計にはおそらく作業が必要であることはわかっていますが、私が進んでいる道が正しいかどうかを確認する必要があります。私は現在正しい道を進んでいるとは思いません。VisualBrush
タイル モードでの使用は、タイムラインの秒行の適切な解決策ではないと思います。
このタイムライン コントロールのコードは 2 つに分割されており、'es をUserControls
使用しTileBush
てタイムラインを再描画しています。
コントロール 1:
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="WpfApplication1.UserControl1"
x:Name="UserControl" HorizontalAlignment="Center" VerticalAlignment="Top" UseLayoutRounding="True">
<Grid x:Name="LayoutRoot" HorizontalAlignment="Center" Width="431" ClipToBounds="True" SnapsToDevicePixels="False" UseLayoutRounding="True">
<Grid Height="30" SnapsToDevicePixels="True" Margin="-35,0,0,0">
<Grid SnapsToDevicePixels="False">
<Grid.Background>
<VisualBrush TileMode="Tile" Viewport="0,0,5,30" ViewportUnits="Absolute" Viewbox="0,0,5,30" ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Line Stroke="Coral" StrokeThickness="2" X1="0" X2="0" Y1="25" Y2="30" UseLayoutRounding="True" />
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>
</Grid>
<Grid Margin="50,0,0,0" SnapsToDevicePixels="False" UseLayoutRounding="True">
<Grid.Background>
<VisualBrush TileMode="Tile" Viewport="0,0,50,30" ViewportUnits="Absolute" Viewbox="0,0,50,30" ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Line Stroke="Red" StrokeThickness="2" X1="0" X2="0" Y1="20" Y2="30" UseLayoutRounding="True" />
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>
</Grid>
<Grid SnapsToDevicePixels="False" Height="30" UseLayoutRounding="True" >
<Grid.Background>
<VisualBrush TileMode="Tile" Viewport="0,0,500,30" ViewportUnits="Absolute" Viewbox="0,0,500,30" ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Grid HorizontalAlignment="Left" Width="500" UseLayoutRounding="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="21*"/>
<ColumnDefinition Width="25*"/>
<ColumnDefinition Width="25*"/>
<ColumnDefinition Width="25*"/>
<ColumnDefinition Width="25*"/>
<ColumnDefinition Width="25*"/>
<ColumnDefinition Width="25*"/>
<ColumnDefinition Width="25*"/>
<ColumnDefinition Width="25*"/>
<ColumnDefinition Width="20*"/>
<ColumnDefinition Width="9*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="15"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" FontFamily="Tahoma" FontSize="8" Padding="0" VerticalAlignment="Bottom" Grid.Column="1" Height="9" Content=".100" Foreground="White"/>
<Label Grid.Row="0" FontFamily="Tahoma" FontSize="8" Padding="0" VerticalAlignment="Bottom" Grid.Column="2" Height="9" Content=".200" Foreground="White"/>
<Label Grid.Row="0" FontFamily="Tahoma" FontSize="8" Padding="0" VerticalAlignment="Bottom" Grid.Column="3" Height="9" Content=".300" Foreground="White"/>
<Label Grid.Row="0" FontFamily="Tahoma" FontSize="8" Padding="0" VerticalAlignment="Bottom" Grid.Column="4" Height="9" Content=".400" Foreground="White"/>
<Label Grid.Row="0" FontFamily="Tahoma" FontSize="8" Padding="0" VerticalAlignment="Bottom" Grid.Column="5" Height="9" Content=".500" Foreground="White"/>
<Label Grid.Row="0" FontFamily="Tahoma" FontSize="8" Padding="0" VerticalAlignment="Bottom" Grid.Column="6" Height="9" Content=".600" Foreground="White"/>
<Label Grid.Row="0" FontFamily="Tahoma" FontSize="8" Padding="0" VerticalAlignment="Bottom" Grid.Column="7" Height="9" Content=".700" Foreground="White"/>
<Label Grid.Row="0" FontFamily="Tahoma" FontSize="8" Padding="0" VerticalAlignment="Bottom" Grid.Column="8" Height="9" Content=".800" Foreground="White"/>
<Label Grid.Row="0" FontFamily="Tahoma" FontSize="8" Padding="0" VerticalAlignment="Bottom" Grid.Column="9" Height="9" Content=".900" Foreground="White"/>
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>
</Grid>
</Grid>
</Grid>
コントロール 2:
<UserControl x:Class="WpfApplication1.UserControl2"
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:local="clr-namespace:WpfApplication1"
mc:Ignorable="d" d:DesignHeight="30" d:DesignWidth="1000">
<StackPanel x:Name="stackPanel" Orientation="Horizontal">
<StackPanel.Background>
<VisualBrush TileMode="Tile" Viewport="0,0,900,30" ViewportUnits="Absolute" Viewbox="0,0,900,30" ViewboxUnits="Absolute">
<VisualBrush.Visual>
<StackPanel Orientation="Horizontal">
<local:UserControl1 Width="430" UseLayoutRounding="True" />
<Grid VerticalAlignment="Top" Width="20" ClipToBounds="True" UseLayoutRounding="True">
<Grid Height="30">
<Grid.Background>
<VisualBrush TileMode="Tile" Viewport="0,0,5,30" ViewportUnits="Absolute" Viewbox="0,0,5,30" ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Line Stroke="Coral" StrokeThickness="2" X1="0" X2="0" Y1="25" Y2="30" />
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>
</Grid>
<Grid Height="30" Margin="0,0,0,0" SnapsToDevicePixels="False" >
<Grid.Background>
<VisualBrush TileMode="Tile" Viewport="0,0,40,30" ViewportUnits="Absolute" Viewbox="0,0,40,30" ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Grid VerticalAlignment="Top">
<Grid.RowDefinitions>
<RowDefinition Height="15"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Label Content="00:00" FontFamily="Tahoma" FontSize="8" Padding="0" VerticalAlignment="Top" Grid.Row="0" Foreground="White" UseLayoutRounding="True"/>
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>
</Grid>
<Grid Height="30" SnapsToDevicePixels="False" Margin="10,0,0,0" UseLayoutRounding="True" >
<Grid SnapsToDevicePixels="True" >
<Grid.Background>
<VisualBrush TileMode="Tile" Viewport="0,0,40,30" ViewportUnits="Absolute" Viewbox="0,0,40,30" ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Grid VerticalAlignment="Top">
<Line Stroke="#FF071DFD" StrokeThickness="2" X1="0" X2="0" Y1="15" Y2="30" />
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>
</Grid>
</Grid>
</Grid>
<local:UserControl1 Width="430"/>
<Grid VerticalAlignment="Top" Width="20" ClipToBounds="True" UseLayoutRounding="True">
<Grid Height="30">
<Grid.Background>
<VisualBrush TileMode="Tile" Viewport="0,0,5,30" ViewportUnits="Absolute" Viewbox="0,0,5,30" ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Line Stroke="Coral" StrokeThickness="2" X1="0" X2="0" Y1="25" Y2="30" />
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>
</Grid>
<Grid Height="30" Margin="0,0,0,0" SnapsToDevicePixels="False" >
<Grid SnapsToDevicePixels="True" >
<Grid.Background>
<VisualBrush TileMode="Tile" Viewport="0,0,40,30" ViewportUnits="Absolute" Viewbox="0,0,40,30" ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Grid VerticalAlignment="Top">
<Grid.RowDefinitions>
<RowDefinition Height="15"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Label Content="00:00" FontFamily="Tahoma" FontSize="8" Padding="0" VerticalAlignment="Top" Grid.Row="0" Foreground="White" UseLayoutRounding="True" />
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>
</Grid>
</Grid>
<Grid Height="30" SnapsToDevicePixels="False" Margin="10,0,0,0" UseLayoutRounding="True" >
<Grid SnapsToDevicePixels="True" >
<Grid.Background>
<VisualBrush TileMode="Tile" Viewport="0,0,40,30" ViewportUnits="Absolute" Viewbox="0,0,40,30" ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Grid VerticalAlignment="Top">
<Line Stroke="#FF071DFD" StrokeThickness="2" X1="0" X2="0" Y1="15" Y2="30" />
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>
</Grid>
</Grid>
</Grid>
</StackPanel>
</VisualBrush.Visual>
</VisualBrush>
</StackPanel.Background>
</StackPanel>
メインウィンドウで:
<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Disabled" >
<local:UserControl2 Width="3059" />
</ScrollViewer>