컨텍스트 메뉴의 너비가 버튼과 동일한 너비가되도록 간단한 버튼이 있습니다. 버튼의 왼쪽 클릭을 컨텍스트 메뉴의 버튼 바로 아래에서 엽니 다.컨텍스트 메뉴가있는 WPF 단추, 컨텍스트 메뉴 너비를 단추의 너비에 바인딩하는 방법?
<Button x:Name="btn" Content="Push Me">
<Button.ContextMenu>
<ContextMenu x:Name="cm">
<MenuItem Header="One" />
<MenuItem Header="Two" />
<MenuItem Header="Three" />
</ContextMenu>
</Button.ContextMenu>
</Button>
나는 상황에 맞는 메뉴 자체에 다음과 같은 바인딩을 시도하고 그것은 내가 코드에서 작업 얻을 수있었습니다,
<ContextMenu x:Name="cm" Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Button}}, Path=ActualWidth}">
작동하지만하지 않습니다
btn.LayoutUpdated += (s, e) => cm.Width = btn.ActualWidth;
내 질문은 ...이 기능을 얻을 수있는 xaml 바인딩이 있습니까?
+1 훨씬 더 나은이 인스턴스에서 NameScope을 설정하면 –
그것은 효과가! thanks –
@Jon PlacementTarget (Button) 외부의 어떤 것도 시각적 트리 검색에 의존해야하므로 ... NameScope를 조정하지만이 솔루션은 사용자 시나리오에 이상적입니다. –