[置顶] 【WPF】wpf笔记本

标签: wpfC#
316人阅读 评论(0) 收藏 举报
分类:

1.对于ListView、ListBox等这些派生自ItemsControl的类,它们的子item的button之类的控件如何绑定到父page或者父window的ViewModel上?

Command="{Binding DataContext.BackupCommand,RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Page}}}"
如果父布局是window,则将x:Type Page改为x:Type Windows.


2.ListBox中的Item当被遮挡了一部分时,点击此item后会先把位置往上移,再次点击才执行相应操作,会让用户误以为一次点击没有效果,需要点击两次。

解决方法是:将ListBox的style中的ScrollView的CanContentScroll属性的值设置为false。

3.带Hint的TextBox控件

设置TextBox控件的Template属性为:

    <ControlTemplate x:Key="HintTextBoxControlTemplate" TargetType="{x:Type TextBoxBase}">
        <Border CornerRadius="10" x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
            <Grid>
                <TextBlock x:Name="hint" Foreground="LightGray" Margin="10"  Text="{TemplateBinding Tag}"></TextBlock>
                <ScrollViewer x:Name="PART_ContentHost" Focusable="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>

            </Grid>
        </Border>
        <ControlTemplate.Triggers>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Opacity" TargetName="border" Value="0.56"/>
            </Trigger>
            <Trigger Property="IsFocused" Value="True">
                <Setter Property="Opacity" TargetName="hint" Value="0"/>
            </Trigger>

        </ControlTemplate.Triggers>
    </ControlTemplate>

把Hint的文字,写在对应的TextBox的Tag标签中。


4.控件选中时设置以控件中心为旋转点

<Image RenderTransformOrigin="0.5,0.5" 


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:163946次
    • 积分:2361
    • 等级:
    • 排名:第17485名
    • 原创:87篇
    • 转载:18篇
    • 译文:1篇
    • 评论:32条
    文章分类
    最新评论