2016-07-04 12 views
0

初心者からxamlへ私は皆さんのために質問があります。ActualHeightの値を取得する方法、結果をActualWidthにフィードするコンバータに渡す

私は "ResourceMonitor"と呼ばれるUserControlを持っています。私は自分のUserControlのActualWidthがActualHeightの1.5倍にスケールされていることを確認しています。スケーリング時に物事を一貫して保つため)。

RelativeSourceを使用して(ResourceMonitor UserControlの)ActualHeightのサイズを取得し、それをパラメータとしてマイコンバーターに渡して、それを幅に割り当てようとしています。これを行うより良い/簡単な方法がありますか?

<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,2,0"> 
    <rm:ResourceMonitor Margin="0,0,4,0" 
        ShowMemoryTrace="True" 
        MemoryTraceColor="#FF3399FF" 
        Width="{Binding Path = {Path=ActualHeight, RelativeSource={RelativeSource Self}}, Converter={StaticResource ResourceMonitorWidthScalingConverter}}"> 
    </rm:ResourceMonitor> 
    <Viewbox> 
     <StackPanel Orientation="Horizontal"> 
      <local:ServerStatus DataContext="{Binding ServerStatusViewModel}"/> 
     </StackPanel> 
    </Viewbox> 
</StackPanel> 

私は1つは、「タイプのパスがマークアップ拡張機能と同じように使用されているが、MarkupExtensionから派生していません」と言っている、ここではカップルのエラーを取得しています

「arguement名がありません」

助けてください:/

答えて

1

あなたのバインディング式が誤って書かれています。

​​

MVVMの場合は、コンバータを使用することをお勧めします。ただし、コードビハインドを気にしない場合は、イベント処理によってコードビハインドで実行できます。しかし、真剣に、コンバータを使用する方がはるかに簡単です。

関連する問題