如何让浏览器只显示本地html文件而不联系网络资源?可以这么说,在没有互联网连接的情况下模仿工作。
我看到了几个 Chrome 扩展,但它们会干扰本地 html 文件的正常工作。
如何让浏览器只显示本地html文件而不联系网络资源?可以这么说,在没有互联网连接的情况下模仿工作。
我看到了几个 Chrome 扩展,但它们会干扰本地 html 文件的正常工作。
有一个列表框。其元素的结构由 ItemTemplate 给出。选择其中一个元素时,将执行一个操作(窗口的内容发生变化)。除此之外,列表的每一行都有最初隐藏的按钮。
当您将鼠标悬停在列表项上时,它的按钮应该可见。如果可能,不要超越 MVVM 模式,不要求助于代码隐藏。
使用触发器,我能够将按钮绑定到父容器(Border 或 DockPanel)的 IsMouseOver 属性。
<ListBox HorizontalContentAlignment="Stretch"
ItemsSource="{Binding Tasks}"
SelectedItem="{Binding SelectedTask}">
<ListBox.ItemTemplate>
<DataTemplate>
<Border Name="Item" BorderBrush="Blue" BorderThickness="1">
<DockPanel LastChildFill="True">
<Label Content="{Binding Path=Name}"/>
<Button Content="Btn"
Height="30" FontSize="20"
BorderThickness="0" Background="Transparent"
HorizontalAlignment="Center">
<Button.Style>
<Style TargetType="Button">
<Setter Property="Visibility" Value="Hidden"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, ElementName=Item}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</DockPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
一切正常,但只有当光标接触文本或边框时,同一边框内的空白区域才不会激活触发器。
通过将 Border 放在 ListBoxItem 中并在其上调用按钮的触发器来解决此问题。
<ListBox HorizontalContentAlignment="Stretch"
ItemsSource="{Binding Tasks}"
SelectedItem="{Binding SelectedTask}">
<ListBox.ItemTemplate>
<DataTemplate>
<ListBoxItem Name="Item">
<Border BorderBrush="Blue" BorderThickness="1">
//Всё то же самое
</Border>
</ListBoxItem>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我原以为这是指列表项的顶级容器,但 WPf 却创建了一个覆盖嵌套项的透明矩形。将鼠标悬停在它上面时,按钮的触发器运行良好,但单击它不会选择列表项。
请注意,ListBoxItem 创建的矩形大小与列表项的实际大小不匹配。
如何强制容器的 IsMouseOver 属性读取嵌套空白处的光标?
如何使用 ItemTemplate 引用顶级容器?