画布尺寸的线悬

问题描述 投票:0回答:1

我想在我的WPF应用程序中在画布上画一条线。我的问题是,如果我在画布上添加的线条坐标是stand的,我也可以看到这部分线条。

我附上一张图片..:

enter image description here

黄框是我的画布区域。

<Window x:Name="MainWindow01" x:Class="_001Linewpf.MainWindow"
    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"
    xmlns:local="clr-namespace:_001Linewpf"
    mc:Ignorable="d"
    Title="Scaleit" Height="874" Width="1024" Loaded="MainWindow01_Loaded">
<Grid ShowGridLines="True">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="80"></ColumnDefinition>
        <ColumnDefinition Width="*"></ColumnDefinition>
        <ColumnDefinition Width="250"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="80"></RowDefinition>
        <RowDefinition Height="*"></RowDefinition>
        <RowDefinition Height="80"></RowDefinition>
    </Grid.RowDefinitions>
    <Grid Grid.Row="0" Grid.ColumnSpan="3" HorizontalAlignment="Center" VerticalAlignment="Center"></Grid>
    <Grid Grid.Row="1" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center"></Grid>
    <Grid Name="drawgrid" Background="Yellow" Grid.Row="1" Grid.Column="1">
        <Border x:Name="CanvasBorder" BorderThickness="5" BorderBrush="Black">
            <Canvas x:Name="Canvas01">
                <Canvas.Background>
                    <SolidColorBrush Color="Black" Opacity="0.15"/>
                </Canvas.Background>
            </Canvas>
        </Border>
    </Grid>

    <Grid Grid.Row="1" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center"></Grid>
    <Grid Grid.Row="2" Grid.ColumnSpan="3" HorizontalAlignment="Center" VerticalAlignment="Center"></Grid>
    <Label x:Name="Label01" Content="Label" Grid.Column="2" HorizontalAlignment="Left" Margin="152,49,0,0" Grid.Row="1" VerticalAlignment="Top"/>
    <Label x:Name="Label02" Content="Label" Grid.Column="2" HorizontalAlignment="Left" Margin="152,139,0,0" Grid.Row="1" VerticalAlignment="Top"/>
</Grid>

这里是我的c#程序

    private void MainWindow01_Loaded(object sender, RoutedEventArgs e)
    {
        Line myLine = new Line();

        myLine.Stroke = System.Windows.Media.Brushes.Black;

        myLine.X1 = 100;
        myLine.X2 = 600;  // 150 too far
        myLine.Y1 = 100;
        myLine.Y2 = -200;

        myLine.StrokeThickness = 1;

        Canvas01.Children.Add(myLine);

        //Label01.Content = "x: " + drawgrid.Point;
        //Label02.Content = "y: " + drawgrid.Height.ToString();
    }
}

}

我想只画画布区域。就像一个CAD程序。表格的其他部分将是按钮等。

c# wpf canvas
1个回答
0
投票

你可以设置 ClipToBounds 为真。

<Canvas x:Name="Canvas01" ClipToBounds="True">
    <Canvas.Background>
        <SolidColorBrush Color="Black" Opacity="0.15"/>
    </Canvas.Background>
</Canvas>
© www.soinside.com 2019 - 2024. All rights reserved.