2018년 11월 15일 목요일

WPF - 빈 버튼 만들기, DataGrid Column 좌측 정렬하기.

1. 빈 버튼 만들기
아래처럼 버튼의 Template을 Rectangle이나 TextBlock 같은 것으로 덮어버리면 지정된 효과를 제거할 수 있다.

<Button>
    <Button.Template>
        <ControlTemplate TargetType="Button">
            <Rectangle Fill="Red"
                       Width="{TemplateBinding Width}"
                       Height="{TemplateBinding Width}"/>
            <!-- TextBlock Text="{TemplateBinding Content}"/> -->
        </ControlTemplate>
    </Button.Template>
</Button>

최소한의 효과를 갖게하려면 스타일로 ToolBar.ButtonStyleKey를 지정하면 된다.

<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" Background="Blue"/>

2. DataGrid Column 좌측 정렬.
DataGridTemplateColumn으로 처리하면 되는데 정석은 아닌 것 같지만 동작한다. :(
CellTemplate에 왜 Top Padding이 필요한지는 잘 모르겠다.
디자이너가 없어서 일하기 힘들다..

<DataGridTemplateColumn IsReadOnly="True" CanUserSort="False">
    <DataGridTemplateColumn.HeaderTemplate>
        <DataTemplate>
            <TextBlock Text="Header" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </DataTemplate>
    </DataGridTemplateColumn.HeaderTemplate>
    <DataGridTemplateColumn.CellStyle>
        <Style TargetType="DataGridCell">
            <Style.Setters>
                <Setter Property="TextBox.BorderBrush" Value="Transparent"/>
                <Setter Property="TextBox.Background" Value="{x:Null}"/>
            </Style.Setters>
        </Style>
    </DataGridTemplateColumn.CellStyle>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Padding="10, 5, 0, 0" Text="{Binding CellData}" HorizontalAlignment="Left"/>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

댓글 없음:

댓글 쓰기