我目前正在使用WPF制作媒体播放器,遇到了一个问题。
我希望布局没有常规的Windows边框和阴影。我通过设置WindowStyle = none和AllowTransparency = true来完成此操作。只要我不想在全屏模式下使用它,所有这些都可以很好地工作。一旦我尝试将WindowState设置为最大化,它就会像疯了似的过扫描(它会切断所有边缘)。这显然是由AllowTransparency = true部分引起的。如果将其设置为false,则最大化的部分将按预期工作。不幸的是,一旦启动应用程序,我将无法设置AllowTransparency。我可以通过使用边框并调整其边距来对此进行某种程度的补偿,但是它看起来并不正确,并且我不确定它是否可以在不同的分辨率下使用。
所以总结一下:
有没有人有解决方案或想法来实现这一目标?
我试图让 ListView 中的文本与单元格的顶部对齐。
这是我到目前为止所做的:
数据绑定如下:
<ListView.View>
<GridView>
<GridViewColumn Width="50">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type ListViewItem}},
Converter={StaticResource lviIndexToString}}"
Foreground="White"
VerticalAlignment="Top"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="80">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding LogTime}"
Foreground="{StaticResource ConsoleOrange}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="80">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding MessageType}"
Foreground="{Binding MessageType,
Converter={StaticResource logMsgToColor}}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=Message}"/>
</GridView>
</ListView.View>
Run Code Online (Sandbox Code Playgroud)
的ItemContainer是风格是这样的:
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Grid>
<GridViewRowPresenter VerticalAlignment="Stretch">
<GridViewRowPresenter.Resources>
<Style TargetType="ContentPresenter">
<Setter Property="Margin" Value="1"/>
<Setter Property="VerticalAlignment" …Run Code Online (Sandbox Code Playgroud)