0

我有一个包含标签和文本框的用户控件。标签和文本框并排放置。我有一个名为 LabelWidth 的 DependencyProperty,它绑定到标签宽度以调整标签宽度。

现在,当我使用 VisualStudio 设计器调整控件大小时,我希望控件在按下 Crtl 时进行不同的缩放。一些代码:

void Control_SizeChanged(object sender, SizeChangedEventArgs e)
{
    bool labelResizeMode = Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl);
    if (labelResizeMode)
    {
        if (e.PreviousSize.Width > 0 && e.PreviousSize.Height > 0)
        {
            double diff = e.NewSize.Width - e.PreviousSize.Width;
            this.LabelWidth += diff;
        }
    }
}

public double LabelWidth
{
    get { return (double)GetValue(LabelWidthProperty); }
    set { SetValue(LabelWidthProperty, value); }
}

public static readonly DependencyProperty LabelWidthProperty =
        DependencyProperty.Register("LabelWidth", typeof(double), typeof(MyUserControl), new PropertyMetadata(100.0));

问题是在调整控件大小时,LabelWidth 的值不会写回 xaml 代码。我怎样才能做到这一点?

4

0 回答 0