WPF: Как автоматизировать путь к контейнеру?
У меня есть путь, который должен изменяться в контейнере StackPanel.
<StackPanel x:Name="TrackSurface">
<Path Fill="AliceBlue"
Stroke="Black" StrokeThickness="1"
Data="{StaticResource TranslateZ}">
</Path>
</StackPanel>
Я думаю об использовании преобразования, связанного с контейнером, но не знаю, как это происходит на самом деле. Может кто-нибудь подскажет мне?
Ответы
Ответ 1
Я изменил свойство Stackpanel на Grid и Stretch пути для заполнения.
<Grid x:Name="TrackSurface">
<Path Fill="AliceBlue"
Stretch="Fill"
Stroke="Black" StrokeThickness="1"
Data="M148,28 C221,133 110.50025,119.5 110.50025,119.5 L124.50016,68.5 z">
</Path>
Ответ 2
Любая причина, по которой вы не используете ViewBox для этого? Это будет сокращаться или расти путь по мере необходимости. Если вы не хотите, чтобы он масштабировался, а скорее обрезался, тогда установите режим обрезки, который будет ограничен ограничивающим блоком управления. (Я бы обернул путь в ContentPresenter для этого.)
Ответ 3
Убедитесь, что ваш путь меньше, чем ваш StackPanel.
Простейшим способом для очень простого пути будет перемещение запятой в каждом номере (т.е. деление всего на 10 или 100 в TranslateZ), или для более сложных путей добавьте LayoutTransform (при необходимости уменьшите коэффициент масштабирования):
<StackPanel x:Name="TrackSurface">
<Path Fill="AliceBlue" Stroke="Black" StrokeThickness="1"
Data="{StaticResource TranslateZ}">
<Path.LayoutTransform>
<ScaleTransform ScaleX="0.1" ScaleY="0.1"/>
</Path.LayoutTransform>
</Path>
</StackPanel>
Некоторые замечания:
У меня была аналогичная проблема, с шаблоном кнопки, содержащим путь.
Путь "авто" определялся по пути, потому что путь
имел наибольшие размеры содержимого шаблона.
Это само по себе может не оказаться проблемой, потому что если вы укажете
высота/ширина кнопки, или если кнопка
Горизонтальное/вертикальное выравнивание настроено на растяжение, конечно путь
будет масштабироваться.
Однако для других значений Horizontal-/VerticalAlignment кнопка
размер определяется количеством пространства, требуемого его содержимым,
который в моем случае привел к кнопке с оригиналом пути
размеры.