1

私はタイムライン コントロールに取り組んでいます。 ここに画像の説明を入力

「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>
4

0 に答える 0