2014年5月10日 星期六

Windows 不同版本的元件差異

先前用 WPF 做了一個 POC 的專案,當時是在 Windows 8 的平台上面開發,某日因為要 Demo 的關係向同事借了一台 Winodws 7 的 notebook 來跑跑看,應用程式一打開發現某些元件重疊了,型狀也有些差異。

當下找到原因是這個應用程式中所有 Button 的 Content 都是放 Image 而不是用預設的樣式,而 Windows 元件在不同版本的作業系統中會有不同的樣式,其中以 Vista 和 Windows 7 的 Aero 特效最明顯。 這裡做個簡單的試驗,在 Windows 8 的環境下開啟 WPF 專案,並且加入一個包含下圖的 Button。



XAML Code

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="200" Width="300">
    <StackPanel HorizontalAlignment="Center"
                VerticalAlignment="Center">
        <Button Padding="0"
                HorizontalAlignment="Center"
                VerticalAlignment="Center">
            <Image Source="SignUp.png" Stretch="None"/>
        </Button>
    </StackPanel>
</Window>

以下是這個應用程式在 Windows 7 及 Windows 8 的環境下執行的效果,在這裡可以明顯的發現不同版本下的差異,要避免類似的狀況發生,只需要加上 BorderThickness="0" 與 BorderBrush="Transparent" 的設定即可移除預設的邊框效果。








沒有留言:

張貼留言