2013-06-10 4 views
0
<Button> 
     <Button.Content> 
      <MultiBinding StringFormat="{}{0},{1}"> 
       <Binding Path="Width" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}"/> 
       <Binding Path="Height" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}"/>        
      </MultiBinding> 
     </Button.Content> 
    </Button> 

여기서는 단추의 내용에 창 너비와 높이를 바인딩하려고했지만 의미가 없습니다.두 개 이상의 속성을 단일 요소 속성에 바인딩하는 문제

+1

StringFormat은 대상이 string 유형이어야합니다. –

+0

당신이 원하는 건 무엇입니까? 나는 그것을 얻지 않는다. 멀티 바인드를 사용하는 경우 멀티콘을 사용해야합니다. – blindmeis

답변

1

Adrian이 제안했듯이 StringFormat 바인딩 결과를 텍스트 컨트롤에 할당해야합니다. 대신이 시도 :

<Button> 
    <Button.Content> 
     <TextBlock> 
      <TextBlock.Text> 
       <MultiBinding StringFormat="{}{0},{1}"> 
        <Binding Path="ActualWidth" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type Button}}"/> 
        <Binding Path="ActualHeight" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type Button}}"/>        
       </MultiBinding> 
      </TextBlock.Text> 
     </TextBlock> 
    </Button.Content> 
</Button> 
0

당신은 당신이 표시 원하는대로 만들 수 있습니다 실행를 사용하여

<Button> 
    <Button.Content> 
      <TextBlock TextAlignment="Left"> 
       <Run Text="{Binding ActualWidth" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}"/> 
       <Run Text=" | " />   
       <Run Text="{Binding ActualHeight" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}"/> 
      </TextBlock> 
    </Button.Content> 
</Button> 

뭔가를 시도 할 수 있습니다. 또한 각각에 다른 스타일로 표시 할 수 있습니다. 을 실행하십시오. 당신은 첫 번째 실행에서 대담한 효과를 만들 수 있고 다른 것은 이탤릭체 또는 다른 것과 같이 다르게 나타날 수 있습니다.

Rether는 높이 당신에게 실제 값을 제공 할 것입니다 창 사용 의 ActualHeightActualWidth 속성의 속성을 사용하여. 당신이 높이와 너비에 NAN을 얻을 기회가있을 수 있습니다. 왜냐하면 그들은 특별히 정의되지 않았기 때문입니다.