1

この質問は、データ バインディングでの型変換や書式設定に関するものではないことに注意してください。

キャンバスに長方形を描く小さなアプリケーションがあります。ユーザーには、長方形の幅を入力するための 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>

ありがとう

4

1 に答える 1

0

ユーザー構成から情報を抽出する要件を処理し、適切な値を提供するバインディングコンバーターを作成します。

必要に応じて、マルチバインディング バインディングを使用して、より多くの値をコンバーターに渡すことができるようにします。

于 2013-10-30T16:09:18.787 に答える