0

私の目標は、デザイナーでサイズを変更したときに再描画されるユーザーコントロールを作成することです。簡単にするために、usercontrolCrossを作成しました。(私はむしろWPFの初心者です)。

Cross.xaml:

<UserControl x:Class="WpfApplication2.Cross"
             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" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid Name="Grid1">
    </Grid>
</UserControl>

Cross.xaml.cs(ステートメントを使用しない):

namespace WpfApplication2
{
    /// <summary>
    /// Interaction logic for Cross.xaml
    /// </summary>
    /// 
    public partial class Cross : UserControl
    {
        public Cross()
        {
            InitializeComponent();

            Line l = new Line();
            l.X1 = 0; l.Y1 = 0; l.X2 = 300; l.Y2 = 300;
            l.Stroke = new SolidColorBrush(Colors.Black);
            Grid1.Children.Add(l);
            l = new Line();
            l.X1 = 0; l.Y1 = 300; l.X2 = 300; l.Y2 = 0;
            l.Stroke = new SolidColorBrush(Colors.Black);
            Grid1.Children.Add(l);
        }
    }
}

したがって、デザイナーの十字のサイズを300から600に変更するときは、[0,0,300,300]、[0,300,300,0]ではなく[0,0,600,600]、[0,600,600,0]の2行が必要です。

4

1 に答える 1

4

The ViewBoxControl を使用してみてください。xaml を次のように変更します。

<UserControl x:Class="WpfApplication2.Cross"
         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" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
        <Viewbox>
            <Grid Name="Grid1"/>
        </Viewbox>
    </Grid>
</UserControl>
于 2012-11-19T22:36:01.223 に答える