0

我的项目中有一个包含滑块的用户控件实例。我想将 RichTextBox 控件的 ScaleTransform 绑定到滑块的值,但我不知道如何正确引用它。用户控件称为工具栏,其中的滑块称为 Scale 这是我迄今为止尝试过的:

<RichTextBox x:Name="body" 
                 SelectionChanged="body_SelectionChanged"
                 SpellCheck.IsEnabled="True"
                 AcceptsReturn="True" AcceptsTab="True"
                 BorderThickness="0 2 0 0">
        <RichTextBox.LayoutTransform>
            <ScaleTransform ScaleX="{Binding ElementName=toolbar.Scale, Path=Value}" ScaleY="{Binding ElementName=toolbar.Scale, Path=Value}"/>
        </RichTextBox.LayoutTransform>
    </RichTextBox>

我也尝试在 .cs 文件中执行此操作,因为我在绑定时遇到了问题,但是在我的滑块事件被触发后,我没有任何运气弄清楚如何实际设置转换值。

4

1 回答 1

1

您不能在其他控件中引用名称,它们在另一个名称范围内。如果您需要滑块值,请将其绑定到UserControl.

UserControl代码(在您的情况下可能会调用该类):

<!-- ToolBar.xaml -->
<UserControl ...
             Name="control">
    <!-- ... -->
    <Slider Value="{Binding ScaleValue, ElementName=control}" ... />
    <!-- ... -->
</UserControl>
// ToolBar.xaml.cs
public partial class ToolBar : UserControl
{
    public static readonly DependencyProperty ScaleValueProperty =
        DependencyProperty.Register("ScaleValue", typeof(double), typeof(ToolBar));
    public double ScaleValue
    {
        { get { return (double)GetValue(ScaleValueProperty); }
        { set { SetValue(ScaleValueProperty, value); }
    }
}

新绑定代码:

<ScaleTransform ScaleX="{Binding ElementName=toolbar, Path=ScaleValue}" ... />
于 2012-07-30T00:33:55.467 回答