1

パスを簡単に取得できるように、すべてのパスをキャンバスに保持する必要があります。で動作することがわかりましたVisualBrush。を取得VisuahBrushしてsに入れようとするとStyle、エラーが発生します。

タイプのオブジェクトは、タイプSystem.Windows.Media.VisualBrushを予期するプロパティには適用できませんSystems.Windows.Style

他に、すべてのパスをキャンバスに保持し、Stylesで取得できるようにするにはどうすればよいですか?

どんなアイデアでも大いに役立ちます、ありがとう!

<VisualBrush x:Key="myVisualBrush">
    <VisualBrush.Visual>
        <Canvas>
            <Path Fill="#FF231F20" Stretch="Fill" Width="12.69" Height="14.477" Canvas.Left="652.196" Canvas.Top="88.61" Data="F1M617.2051,52.7275C616.7281,52.4525,616.3391,52.6775,616.3391,53.2275L616.3391,66.4695C616.3391,67.0195,616.7281,67.2445,617.2051,66.9695L628.6721,60.3485C629.1481,60.0735,629.1481,59.6235,628.6721,59.3485z"/>
        </Canvas>
    </VisualBrush.Visual>
</VisualBrush>

<Style x:Key="myVisualStyle" BasedOn="{StaticResource myVisualBrush}" TargetType="{x:Type TextBox}">
    <!-- Styles -->
</Style>    

4

1 に答える 1

2

VisualBrushは、ブラシを受け入れるオブジェクトに割り当てられるように設計されています。たとえば、目的のスタイルではなく、背景のようになります。このようなことを行うことをお勧めします(この例では、ブラシを選択して選択できるようにする必要がある場合はVisualBrush、すべてに同じものを割り当てます。次に、スタイルにを追加し直して、スタイルを個別に割り当てることをお勧めします。あなたのTextBoxのTextBoxx:Key

<Window x:Class="WpfApplication4.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="400" Width="400">
    <Window.Resources>
        <VisualBrush x:Key="myVisualBrush">
            <VisualBrush.Visual>
                <Canvas>
                    <Path Fill="#FF231F20" Stretch="Fill" Width="12.69" Height="14.477" Canvas.Left="652.196" Canvas.Top="88.61" Data="F1M617.2051,52.7275C616.7281,52.4525,616.3391,52.6775,616.3391,53.2275L616.3391,66.4695C616.3391,67.0195,616.7281,67.2445,617.2051,66.9695L628.6721,60.3485C629.1481,60.0735,629.1481,59.6235,628.6721,59.3485z"/>
                </Canvas>
            </VisualBrush.Visual>
        </VisualBrush>

        <Style  TargetType="{x:Type TextBox}">
            <Setter Property="Background" Value="{StaticResource myVisualBrush}"/>
        </Style>
        <Style x:Key="myPathStyle" TargetType="{x:Type Path}">
            <Setter Property="Fill" Value="{StaticResource myVisualBrush}"/>
        </Style>
    </Window.Resources>
    <Grid>
        <TextBox  x:Name="MyTextBox" />
        <Path Style="{StaticResource myPathStyle}"  x:Name="myPath" >
            <Path.Data>
                <RectangleGeometry Rect="100,100,100,100"/>
            </Path.Data>        
        </Path>
    </Grid>
</Window>
于 2013-01-06T04:33:34.157 に答える