请注意,此问题与数据绑定中的类型转换或格式无关。
我有一个小应用程序,它在画布上绘制一个矩形。用户有一个 UI 来输入矩形的宽度。该值存储在 user.config 中。问题是最终用户想要以英寸或毫米为单位输入宽度,但在 WPF 中,矩形的宽度以显示独立像素 (DIP) 为单位测量。因此,如果他使用英寸,我必须将用户的输入乘以 96,如果他使用毫米,我必须乘以 3.84。我如何实现这一点并仍然利用数据绑定。
这是我当前用于数据绑定矩形宽度的 XAML
<Canvas x:Name="canvasPanel" >
<Rectangle x:Name="rect" Width="{Binding Default.Width, Mode=OneWay, Source={StaticResource Settings}}"/>
</Canvas>
这是我当前用于数据绑定用户输入的 XAML
<TextBox Text="{Binding Default.Width, Mode=TwoWay, Source={StaticResource Settings}}"/>
当然,我不会忘记在 App.xaml 中声明一个静态资源
<Application x:Class="DefectSim.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:properties="clr-namespace:DefectSim.Properties"
StartupUri="MainWindow.xaml">
<Application.Resources>
<properties:Settings x:Key="Settings"/>
</Application.Resources>
</Application>
谢谢