我有以下要在xaml.cs中执行的XAML代码。
<RichTextBox.LayoutTransform>
<ScaleTransform ScaleX="{Binding ElementName=mySlider, Path=Value}"
ScaleY="{Binding ElementName=mySlider, Path=Value}"/>
</RichTextBox.LayoutTransform>
基本上它将滑块绑定到richtextbox并执行缩放。
以下是我的尝试:
RichTextBox newtext = new RichTextBox();
ScaleTransform mytran = new ScaleTransform();
mytran.ScaleX = mySlider.Value;
mytran.ScaleY = mySlider.Value;
newtext.LayoutTransform = mytran;
答案 0 :(得分:3)
以下代码相当于Xaml
//<RichTextBox.LayoutTransform>
// <ScaleTransform ScaleX="{Binding ElementName=mySlider, Path=Value}"
// ScaleY="{Binding ElementName=mySlider, Path=Value}"/>
//</RichTextBox.LayoutTransform>
ScaleTransform scaleTransform = new ScaleTransform();
Binding scaleXBinding = new Binding("Value");
scaleXBinding.Source = mySlider;
Binding scaleYBinding = new Binding("Value");
scaleYBinding.Source = mySlider;
BindingOperations.SetBinding(scaleTransform,
ScaleTransform.ScaleXProperty,
scaleXBinding);
BindingOperations.SetBinding(scaleTransform,
ScaleTransform.ScaleYProperty,
scaleYBinding);
RichTextBox newText = new RichTextBox();
newText.LayoutTransform = scaleTransform;
答案 1 :(得分:1)
不确定您是否询问如何在代码中执行绑定,或者如何在代码中设置ScaleX
和ScaleY
属性(例如,不绑定)。如果是这种情况,请按以下步骤操作:
首先,为您的ScaleTransform
命名,例如“myScaleTransform
”:
<RichTextBox.LayoutTransform>
<ScaleTransform x:Name="myScaleTransform" ScaleX="1" ScaleY="1" />
</RichTextBox.LayoutTransform>
然后,为mySlider
ScaleX
事件添加事件处理程序。在此处理程序中,更新ScaleY
的{{1}}和myScaleTransform
属性:
public void mySlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
myScaleTransform.ScaleX = mySlider.Value;
myScaleTransform.ScaleY = mySlider.Value;
}
希望这有帮助。
答案 2 :(得分:1)
你确实设置了转换而不是绑定 - 它将被修复。 你需要使用像
这样的东西Binding scaleBinding = new Binding("Value"){ElementName="mySlider"};
BindingOperations.SetBinding(mytran, ScaleTransform.ScaleXProperty, scaleBinding);
BindingOperations.SetBinding(mytran, ScaleTransform.ScaleYProperty, scaleBinding);
真的到了同一个