반응형
은색 빛에서 자식 요소의 너비를 부모 요소의 너비에 바인딩하는 방법
너비가 "1*"인 그리드가 있습니다.그래서 실제 너비는 런타임에 결정되었다고 생각합니다.이 그리드 안에 부모 그리드의 런타임 너비로 설정할 다른 그리드가 있습니다.바인딩을 통해 xaml에서 어떻게 해야 합니까?
이게 실제로 도움이 될 거예요
Width="{Binding ActualWidth, ElementName=parentElementName}"
너비를 부모 요소 또는 제공된 요소 이름에 바인딩합니다.
이것은 어디서나 작동할 수 있는 일반적인 솔루션입니다.상위 요소 이름을 쓸 필요가 없습니다.이것은 상위 항목을 식별하고 상위 항목의 너비를 취합니다.
Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ActualWidth}"
동일한 작업을 수행하는 가장 쉬운 방법은 다음과 같습니다.
HorizontalAlignment="Stretch"
그것은 당신이 요청한 것처럼 바인딩을 사용하지 않지만, 더 쉽습니다.
Width="{Binding Width, RelativeSource={RelativeSource AncestorType={x:Type Parent}, Mode=FindAncestor}}"
두 컨트롤 모두 DataContext가 다른 경우.
코드비하인드에서 하는 거라면 저한테 맞는 말입니다.bindMe가 Me의 자식일 필요가 없다는 추가적인 장점이 있습니다.
public static void BindWidth(this FrameworkElement bindMe, FrameworkElement toMe)
{
Binding b = new Binding();
b.Mode = BindingMode.OneWay;
b.Source = toMe.ActualWidth;
bindMe.SetBinding(FrameworkElement.WidthProperty, b);
}
용도:
child.BindWidth(parent);
HorizontalAlignment(수평 정렬)는 Xamarin(사마린)의 버튼에 사용할 수 없습니다. 대신 Horizontal Options(수평 옵션)를 사용할 수 있습니다.
HorizontalOptions="Fill"
ListBox에서 HorizontalContentAlignment="Stretch" 사용:
<ListBox HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Image HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Source="TestImage.png"/>
<TextBlock HorizontalAlignment="Center" Text="Test Text"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
또는 템플릿 내부에 있는 경우 다음을 사용합니다.
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Image Width="{TemplateBinding Width}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Source="TestImage.png"/>
<TextBlock HorizontalAlignment="Center" Text="Test Text"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
언급URL : https://stackoverflow.com/questions/18864831/how-to-bind-width-of-child-element-to-width-of-parent-element-in-silverlight
반응형
'source' 카테고리의 다른 글
VBA가 Excel 인스턴스 간에 연결할 수 있습니까? (0) | 2023.05.17 |
---|---|
C#은 두 개체 유형을 서로 비교하지 못하지만 VB는 비교하지 못하는 이유는 무엇입니까? (0) | 2023.05.17 |
Angular 2: 'input'의 알려진 속성이 아니므로 'ngModel'에 바인딩할 수 없습니다. (0) | 2023.05.17 |
자바스크립트와 CSS를 사용하여 스크롤할 때 테이블의 첫 번째 행과 첫 번째 열을 잠그려면 어떻게 해야 합니까? (0) | 2023.05.17 |
VB.NET - IIF(, , ) - "측면"이 모두 평가됩니다.어떤 상황을 주의해야 합니까? (0) | 2023.05.17 |