是否存在在XAML中使用任意C#表达式的现有方法?

Ash*_*vis 8 c# wpf xaml

我希望能够在XAML中使用任意C#表达式.通常,这将是基于两个绑定值计算UI元素的属性.

例如,基于另外两个属性计算UI元素的宽度.

这是我希望XAML看起来像一个人为的例子:

<TextBox
   x:Name="textBox1"
   />

<TextBox
   x:Name="textBox2"
   />

<Rectangle
    Height={Double.Parse(textBox1.Text) + Double.Parse(textBox2.Text)}
    />
Run Code Online (Sandbox Code Playgroud)

当然,在XAML中没有内置的方法.

我知道我可以使用MultiBinding结合自定义转换器,这通常是我做这种事情的方式.然而,在我看来,在XAML中包含一些C#代码会简单得多,我想知道是否有人已经用XAML扩展或其他东西解决了这个问题.

Liv*_* M. 2

您可以将 C# 代码嵌入到 XAML 中,如下所示:

 <x:Code>
            <![CDATA[

            void ButtonOnClick(object sender, RoutedEventArgs args)
            {
                Button btn = sender as Button;
                MessageBox.Show("The button labeled '" +
                                btn.Content +
                                "' has been clicked.","Information Message");
            }
            ]]>
  </x:Code>
Run Code Online (Sandbox Code Playgroud)

但这种方法根本不推荐,因为它混合了纯表示层和业务逻辑。