0

App.xaml.csファイルで次のように定義した静的プロパティ クラスのキャンバス サイズを特定の幅/高さにしようとしています。

public class CanvasAttr
{
    public static double Width 
    { 
        get 
        {
            return Window.Current.Bounds.Width / 4;    
        } 
    }
    public static double Height 
    { 
        get 
        {
            return Window.Current.Bounds.Height / 4;    
        } 
    }
}

そして、これが私のものですMainPage.xaml

<Page
    x:Class="Bossanova.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Bossanova"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" Height="765.015">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Grid.Resources>
            <Style x:Key="DrawSurface" TargetType="Canvas">
                <Setter Property="Width" Value="{Binding CanvasAttr.Width}" />
                <Setter Property="Height" Value="{Binding CanvasAttr.Height}" />
                <Setter Property="Background" Value="AliceBlue" />
            </Style>
        </Grid.Resources>
        <Canvas x:Name="Main" Style="{StaticResource DrawSurface}">

        </Canvas>
    </Grid>
</Page>

ご覧のとおり、キャンバスの Width プロパティと Height プロパティのタグを<Style>定義内に追加しました。<Setter>問題は、単純な{Binding CanvasAttr.Width}ものが何にも影響を与えないように見えることです。これを達成するために何をする必要がありますか?

4

2 に答える 2

2

x:Staticを使用して XAML の静的プロパティにバインドする -

<Setter Property="Width" Value="{x:Static local:CanvasAttr.Width}" />
<Setter Property="Height" Value="{x:Static local:CanvasAttr.Height}" />
于 2013-11-10T19:48:11.017 に答える