세로 단추가있는 랩 랩 패널을 사용해 봅니다. 모든 버튼은 이미지와 텍스트 블록으로 구성됩니다. 사용자가 GridSplitter를 이동할 때창의 왼쪽에있는 Outlook에서 Microsoft가 수행 한 작업을 수행하려고합니다. 사용자가 랩 패널의 높이를 줄이면 버튼에 배치 할 위치가 없으면 텍스트 블록이 사라집니다 (버튼은 이미지에서 구성됩니다).WPF의 가로 세로 WrapPanel
어떻게 할 수 있습니까?
감사
세로 단추가있는 랩 랩 패널을 사용해 봅니다. 모든 버튼은 이미지와 텍스트 블록으로 구성됩니다. 사용자가 GridSplitter를 이동할 때창의 왼쪽에있는 Outlook에서 Microsoft가 수행 한 작업을 수행하려고합니다. 사용자가 랩 패널의 높이를 줄이면 버튼에 배치 할 위치가 없으면 텍스트 블록이 사라집니다 (버튼은 이미지에서 구성됩니다).WPF의 가로 세로 WrapPanel
어떻게 할 수 있습니까?
감사
정확하게 이해하면. 텍스트와 이미지가있는 단추를 표시하려고하지만 단추의 너비가 특정 크기로 줄어들면 이미지 만 표시됩니다.
그렇다면 데이터 트리거를 사용하여 구현할 수 있어야합니다.
[ValueConversion(typeof(double), typeof(string))]
public class isLessThanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if ((double)value < double.Parse((string)parameter))
{
return true;
}
else
{
return false;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
나는이에 전문가가 아니다, 그래서 청소기 방법이있을 수 있습니다
<Window x:Class="StackOverflow1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:StackOverflow1"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<local:isLessThanConverter x:Key="MyisLessThanConverter"/>
<Style x:Key="myWidthTrigger" TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=ActualWidth, RelativeSource={RelativeSource AncestorType=Button}, Converter={StaticResource MyisLessThanConverter}, ConverterParameter=90}" Value="True">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<ListView HorizontalContentAlignment="Stretch">
<Button x:Name="myButton" Width="Auto">
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="MyTextBlock" Style="{StaticResource myWidthTrigger}" Text="Test"></TextBlock>
<Image Source="image.png" Height="15"></Image>
</StackPanel>
</Button>
</ListView>
<GridSplitter Width="5" Grid.Column="1" ResizeDirection="Columns" ResizeBehavior="PreviousAndNext"></GridSplitter>
</Grid>
또한이 IValueConvertor를 사용하여. 또한 요청한 wrappanel 대신 listview를 사용했습니다.
희망이 있습니다.
당신이 사용하고자하는 것은 Expander
컨트롤입니다처럼 소리. 이 StackOverflow post은 다른 사람을 열면 다른 사람이 자동으로 닫히게하는 방법을 설명합니다. 이것은 Outlook에서 설명하는 것과 같이 작동합니다.
감사합니다 Chris! 저는 확장기 (창 측면을 최소화하는 버튼)에 관해서 이야기하지 않습니다. GridSplitter에 대해 이야기하면서 위 또는 아래로 가져 가면 단추 텍스트가 사라집니다. 어떻게하는지 알고 계십니까? –
XAML 및 코드를 게시하여 수행하려는 작업의 예가 될 수 있으며 더 도움이 될 것입니다. –
브렌트에게 감사합니다! 그것은 매우 불행했습니다. –
문제 없습니다. 행운을 빕니다. –