2011-11-11 11 views

答えて

1

これは converter です。 DialogPresenter.Generic.xaml

<controls:DragCanvas Name="DialogCanvas"> 
    <Grid x:Name="Dialog" ...> 
    <Canvas.Top> 
     <MultiBinding Converter="{StaticResource CenterConverter}" ConverterParameter="top"> 
      <Binding ElementName="DialogCanvas" Path="ActualWidth" /> 
      <Binding ElementName="DialogCanvas" Path="ActualHeight" /> 
      <Binding ElementName="Dialog" Path="ActualWidth" /> 
      <Binding ElementName="Dialog" Path="ActualHeight" /> 
     </MultiBinding> 
    </Canvas.Top> 
    <Canvas.Left> 
     ... 
    </Canvas.Left> 

0

ダイアログを中央に置く方法はいくつかあります。 DialogPresenterクラスの

  1. 、window.WindowStartupPosition = WindowStartupLocation.CenterScreenを設定するための表示()メソッドを更新します。

  2. カスタムTriggerActionを記述し、Invokeをオーバーライドして次の操作を行います。

    var window = Window.GetWindow(this.AssociatedObject); window.WindowStartupLocation.CenterScreen

    トリガーアクションを、トリガーセクションのControlTemplateに追加します。 LoadedEventを使用してTriggerActionを呼び出すと、EventTriggerを使用します。

注:ExpressionBlendを使用している場合、EventTriggerパーツが作成されるため、ExpressionTlendをUIにドラッグするのが容易になります。

関連する問題