0

コード ビハインドのプロパティが の場合、コントロール テンプレート内のボタンVisibility="Visible"を設定するにはどうすればよいですか?IsSendBtnVisibletrue

これが私のWPFページです:

<Page 
  x:Class="CardViewPage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="CardViewPage">

   <Grid Name="content" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
       <Grid.RowDefinitions>
          <RowDefinition Height="*" />
       </Grid.RowDefinitions>
       <DocumentViewer Margin="0" Grid.Row="0" Name="documentViewer" />
   </Grid>

</Page>

このページのドキュメント ビューアのカスタム テンプレートは次のとおりです

<Style TargetType="{x:Type DocumentViewer}">
   ...
   <Setter Property="Template">
   <Setter.Value>
      <ControlTemplate TargetType="{x:Type DocumentViewer}">
         ...
         <Button 
            Click="btnSendToServer_Click"  
            Width="25"
            Height="25"
            Visibility="Collapsed" />
         ...
      </ControlTemplate>
   </Setter>
   ...
</Style>
4

3 に答える 3

0

Dima Martovoi,bathineni - 返信ありがとうございます。

Dima Martovoi さん、DocumentViewer からの継承は、この小さな問題では難しいと思います。bathineni のソリューションの DataTrigger でバリアントを使用しようとしましたが、機能しません。なぜだか分からない。次のバインディングを使用して問題を解決しました:

<Button
Visibility="{Binding RelativeSource={RelativeSource AncestorType=Page},Path=SendToServerVisiblity}">
</Button>

どこ

 public Visibility SendToServerVisiblity
    {
        get
        {
            if (IsOnlineMode)
                return Visibility.Visible;
            return Visibility.Collapsed;
        }
    }

ページ内コード ビハインド

于 2012-10-18T11:58:57.777 に答える
0

これを実現するには、データトリガーを使用することをお勧めします...

<Button
 Click="btnSendToServer_Click"  
                  Width="25"
                  Height="25">
            <Button.Style>
                <Style>
                    <Setter Property="Button.Visibility" Value="Collapsed"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding IsSendBtnVisible}" Value="True">
                            <Setter Property="Button.Visibility" Value="Visible"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Button.Style>
        </Button>

ボタンのプロパティではなく、スタイルで表示を折りたたみに設定してください。

注: データ トリガーのバインディングは、データ コンテキストによって異なる場合があります。

于 2012-10-17T08:43:26.183 に答える
0

u ur DocumentViewer のDependancyPropertyTemplateBindingを宣言し、xaml ControlTemplate で使用する必要があります (UrProperty例)

<ControlTemplate TargetType="{x:Type DocumentViewer}">
          ...
          <Button Click="btnSendToServer_Click"  
                  Width="25"
                  Height="25"
                  Visibility="{TemplateBinding UrProperty}"
                  />
          ...
      </ControlTemplate>
于 2012-10-17T08:36:27.447 に答える