功能简单的块库
弄了一个能自己随意折腾的块库,提取当前图纸的块来进行块的插入,可以进行搜索,加强了信息密度,预览图做的小不过也能看看,名字也很小,在小屏幕笔记本上也能一下显示好几个待选,也能随着界面的大小自动排列合适数量的预览图。
方法就是用一个ScrollViewer包自定义的按钮,按钮内部可以绑定块的预览图,再绑好命令,闲的可以再优化下鼠标滚动能翻一整页的逻辑。
预览图这块高版本有自带的方法,可怜的低版本像这个2012并没有,如果不做处理,用自带的块预览图效果会很模糊,不过没关系,也有其它的方法可以生成清楚点的预览图再塞给块,只是要麻烦点,我参考的blockview,不知道各位大佬对于低版本做预览图这块有没有更好的办法。
其他什么比例角度的暂时没啥需求也就不弄了。
下面是右侧块展示区域的XAML,供参考,丢给AI说不定也就折腾出来了。
<!--右侧自适应块展示-->
<ScrollViewer
x:Name="BlockScroller" Grid.Column="2" PreviewMouseWheel="BlockScroller_PreviewMouseWheel" VerticalScrollBarVisibility="Auto">
<ItemsControl ItemsSource="{Binding 当前图纸块集合}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel HorizontalAlignment="Stretch" Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="VerticalAlignment" Value="Top" />
</Style>
</ItemsControl.ItemContainerStyle>
<!--卡片模板-->
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button
Width="60" Height="80" Margin="2" Padding="0"
VerticalContentAlignment="Top" Background="#60000000" BorderBrush="#E0E0E0" BorderThickness="1"
Command="{Binding DataContext.InsertBlockCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding}"
Cursor="Hand">
<Button.Style>
<Style BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border
x:Name="border"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
<DockPanel LastChildFill="True">
<Image
Width="60" Height="60" DockPanel.Dock="Top"
Source="{Binding 块缩略图}"
Stretch="Uniform" />
<TextBlock
x:Name="txt" Margin="1" FontSize="8" FontWeight="ExtraBold"
Foreground="WhiteSmoke" LineHeight="8" LineStackingStrategy="BlockLineHeight"
Text="{Binding 块名}"
TextAlignment="Center" TextWrapping="Wrap" />
</DockPanel>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="txt" Property="FontSize" Value="9" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
<!--空状态提示-->
<ItemsControl.Template>
<ControlTemplate TargetType="ItemsControl">
<Grid>
<ItemsPresenter />
<TextBlock
Margin="20" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="ExtraBold"
Foreground="#000" Text="暂无块数据"
Visibility="{Binding Items.Count, RelativeSource={RelativeSource AncestorType=ItemsControl}, Converter={StaticResource CountToVisibilityConverter}}" />
</Grid>
</ControlTemplate>
</ItemsControl.Template>
</ItemsControl>
</ScrollViewer>
论坛打开gif附件好像很慢。。。补个截图吧 nice,学习学习 6666666666 其实gif和视频一样也能剪辑的,录制的时候,设置一下,还有后期处理时候调一下,gif文件会小很多 tranque 发表于 2026-1-12 23:35
其实gif和视频一样也能剪辑的,录制的时候,设置一下,还有后期处理时候调一下,gif文件会小很多
在上传限制大小以内,只有3M多,不应该要转很久的圈,转出的时候已经是用的最低画质了...
页:
[1]