Если вы не возражаете против использования Grid
, как показывает пример кода, вы можете использовать Border
элементы управления и изменять их BorderThickness
в зависимости от того, какой угол они представляют:
<Grid>
<Border
VerticalAlignment="Top"
HorizontalAlignment="Left"
BorderThickness="1,1,0,0"
BorderBrush="Red"
Width="10" Height="10"
/>
<Border
VerticalAlignment="Top"
HorizontalAlignment="Right"
BorderThickness="0,1,1,0"
BorderBrush="Red"
Width="10" Height="10"
/>
<Border
VerticalAlignment="Bottom"
HorizontalAlignment="Left"
BorderThickness="1,0,0,1"
BorderBrush="Red"
Width="10" Height="10"
/>
<Border
VerticalAlignment="Bottom"
HorizontalAlignment="Right"
BorderThickness="0,0,1,1"
BorderBrush="Red"
Width="10" Height="10"
/>
<TextBlock
Text="Add"
HorizontalAlignment="Center"
VerticalAlignment="Center"
/>
</Grid>
There's nothing built into .NET that will do the search for you, so you're going to need to read in the file chunk by chunk and scan for what you want to find.
You can speed up the search in two ways.
Firstly, use bufferred IO and transfer large chunks at a time - don't read byte by byte, read 64KB, 256KB or 1MB chunks.
Secondly, don't do a linear scan for the piece you want - check out the Boyer-Moore (wikipedia link) algorithm for string searches - you can apply this to searching for the DWARF information you want.
Я думаю, вам придется сделать это самостоятельно, BinaryReader не был предназначен для поиска текста в двоичном файле. Однако вам следует помнить о кодировке текста, которую вы используете при поиске.
Должна быть библиотека DWARF C, с которой вы могли бы скомпилировать и использовать взаимодействие? Я немного искал и нашел этот . Если оттуда библиотека может быть скомпилирована в DLL на Windows (я полагаю, вы используете Windows), то вы можете использовать System.Runtime.InteropServices для взаимодействия с DLL и извлечения оттуда вашей информации.
Возможно?