2014-04-15 12 views
5

मैं पहले से ही इस मुद्दे पर Telerik के लिए एक समर्थन टिकट जमा कर दिए हैं, वहीं मैं भी प्रश्न यहाँ पोस्टिंग कर रहा हूँ किसी को उम्मीद कर एक समाधान हो सकता है:लेआउट मुद्दा

RadTileList नियंत्रण अतिरिक्त गद्दी जोड़ रहा है शीर्ष पर और टाइल्स के नीचे। इसे प्रदर्शित करने के लिए, मैंने एक साधारण WPF एप्लिकेशन बनाया है जिसमें तीन टाइल्स हैं। ऐप में एक लाल सीमा के भीतर एक टेलीरिक रेडटाइललिस्ट नियंत्रण होता है (यह दिखाने के लिए कि नियंत्रण कहां से शुरू होता है और समाप्त होता है), और रैडटाइललिस्ट में तीन हार्डकोडेड टेलरिक टाइल्स शामिल हैं। उनमें से दो "सिंगल" आकार की टाइल्स हैं, और दूसरा एक "डबल" है। मैं जो करने की कोशिश कर रहा हूं वह नियंत्रण के ऊपरी बाएं कोने में संरेखित करने के लिए टाइल्स प्राप्त कर रहा है।

<Window x:Class="TelerikRadTileListIssue.MainWindow" 
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
       xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" 
       Title="MainWindow" Height="522" Width="559"> 

    <Border BorderBrush="Red" BorderThickness="2"> 
     <telerik:RadTileList > 
      <telerik:RadTileList.Items> 
       <telerik:Tile TileType="Single"> 
        <TextBlock>Tile 1</TextBlock> 
       </telerik:Tile> 

       <telerik:Tile TileType="Double"> 
        <TextBlock>Tile 2</TextBlock> 
       </telerik:Tile> 

       <telerik:Tile TileType="Single"> 
        <TextBlock>Tile 3</TextBlock> 
       </telerik:Tile> 

      </telerik:RadTileList.Items> 
     </telerik:RadTileList> 

    </Border> 
</Window> 

Screenshot of test app

उत्तर

6

मुझे एक बेहतर समाधान मिला है। मैंने DevExpress WPF TileLayoutControl को आजमाया। उपयोगकर्ता को टाइल चुनने की इजाजत देने के अपवाद के साथ, यह टेलरिक टाइललिस्ट कंट्रोल करता है, और यह सब कुछ करता है। सबसे महत्वपूर्ण बात यह है कि, यदि मैं पैडिंग प्रॉपर्टी को "0" पर सेट करता हूं, तो टाइल्स पूरी तरह से ऊपरी-लेफ्थैंड कोने में संरेखित होती है।मुझे लगता है कि मैं अब डेवएक्सप्रेस प्रशंसक बनना शुरू कर रहा हूं।

मुझे स्टैकओवरफ्लो पर मेरे प्रतिनिधि के 100 अंक देने का अफसोस है कि कोई भी जवाब देना चाहता है, लेकिन हिंडसाइट 20/20 है। अगर किसी को टेलरिक मुद्दे का हल मिल जाए, तो मैं आभारी रहूंगा।

1

एक DataTemplate अपने RadTileList के लिए और उस टेम्पलेट में सेट VerticalAlignment संपत्ति Top करने के लिए ...

<DataTemplate x:Key="GroupTemplate"> 
    <TextBlock Text="{Binding Header}" 
     FontSize="20" 
     FontFamily="Segoe UI" 
     Margin="10"    
     VerticalAlignment="Top" 
     HorizontalAlignment="Left"/> 
</DataTemplate> 

<telerik:RadTileList GroupTemplate="{StaticResource GroupTemplate}"> 
+0

मैं (मैं इसे पहले कभी नहीं देखा है) आपकी प्रतिक्रिया की सराहना करते हैं, और GroupTemplate ओर इशारा करते हुए के लिए धन्यवाद, लेकिन यह अभी भी ठीक करने के लिए प्रतीत नहीं होता समस्या। –

+0

क्या आपको वह सीमा है? इसे ग्रिड के साथ बदलने का प्रयास करें और देखें कि क्या होता है ... –

+0

डीन, मेरे साथ पीछा करने के लिए फिर से धन्यवाद। मैंने सीमा को हटाने और अभी भी, कोई पासा हटाने के लिए ऊपर दिए गए आपके सुझाव की कोशिश की। क्या आपको टेलीरिक से चिपकाए गए जवाब को पढ़ने का मौका मिला है? उनका समाधान आंशिक रूप से काम करता है। –

2

Telerik प्रतिक्रिया व्यक्त बनाएँ:

निम्नलिखित XAML है एक समाधान के साथ मेरे प्रश्न के लिए [कुछ हद तक] काम करते हैं रों। यहां उन्होंने लिखा है:

आप टाइललिस्ट पैनेल के पैडिंग को रीसेट करने का प्रयास कर सकते हैं - डिफ़ॉल्ट रूप से हम इस घटक की समूह कार्यक्षमता के लिए शीर्ष पर 30 पिक्सेल पर इस मान को सेट करते हैं। सीधे 0 को यह मान सेट, शीर्ष पर दूरी पर रीसेट कर देगा के रूप में नीचे दिखाया गया है:

<Style x:Key="RadTileListStyle1" TargetType="{x:Type telerik:RadTileList}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type telerik:RadTileList}"> 
         <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
          <StackPanel Orientation="Horizontal"> 
           <ContentControl x:Name="PART_PanoramaBackground" ClipToBounds="True" Content="{TemplateBinding PanoramaBackground}" HorizontalAlignment="Left" VerticalAlignment="Top"/> 
          </StackPanel> 
          <ScrollViewer x:Name="PART_ScrollViewer" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CanContentScroll="True" HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" Margin="0" Padding="{TemplateBinding Padding}" VerticalScrollBarVisibility="Hidden"> 
           <telerik:StyleManager.Theme> 
            <telerik:Office_BlackTheme/> 
           </telerik:StyleManager.Theme> 
           <ItemsPresenter/> 
          </ScrollViewer> 
          <ContentPresenter x:Name="dragVisualPlaceholder" HorizontalAlignment="Stretch" Visibility="Collapsed" VerticalAlignment="Stretch"/> 
         </Grid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="ItemsPanel"> 
       <Setter.Value> 
        <ItemsPanelTemplate> 
         <telerik:TileListPanel Padding="0" AllowDrop="True" Background="Transparent" CanHorizontallyScroll="True" CanVerticallyScroll="False" IsItemsHost="True" telerik:ScrollingSettingsBehavior.IsEnabled="True" telerik:ScrollingSettingsBehavior.ScrollStepTime="0:0:0.05" ScrollOwner="{x:Null}" telerik:ScrollingSettingsBehavior.ScrollStep="24" telerik:ScrollingSettingsBehavior.ScrollAreaPadding="200"/> 
        </ItemsPanelTemplate> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="GroupTemplate"> 
       <Setter.Value> 
        <DataTemplate> 
         <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> 
        </DataTemplate> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="SnapsToDevicePixels" Value="True"/> 
     </Style> 

:

<Setter Property="ItemsPanel"> 
       <Setter.Value> 
        <ItemsPanelTemplate> 
         <telerik:TileListPanel Padding="0" AllowDrop="True" Background="Transparent" CanHorizontallyScroll="True" CanVerticallyScroll="False" IsItemsHost="True" telerik:ScrollingSettingsBehavior.IsEnabled="True" telerik:ScrollingSettingsBehavior.ScrollStepTime="0:0:0.05" ScrollOwner="{x:Null}" telerik:ScrollingSettingsBehavior.ScrollStep="24" telerik:ScrollingSettingsBehavior.ScrollAreaPadding="200"/> 
        </ItemsPanelTemplate> 
       </Setter.Value> 
      </Setter> 

इसके अलावा, मैं आप RadTileList के लिए इस संशोधन के साथ पूर्ण टेम्पलेट चिपकाने हूँ * कृपया इसे आज़माएं और हमें बताएं कि हम आपकी सहायता कैसे कर सकते हैं।

सादर, वन्या पावलोवा Telerik *

यहाँ परिणाम हैं:

जब मैं पहली बार एप्लिकेशन लॉन्च: यदि मैं यह कभी तो अल्प आकार Here is what the screen looks like when I first launch it:

: If I resize it ever so slightly

यदि मैं इसे एक महत्वपूर्ण आकार बदलता हूं राशि: If I resize it a significant amount

ऊपर की छवि में दिखाए गए अनुसार, टाइल्स लगातार ऊपरी-बाएं स्थान पर नहीं रहती हैं। अभी के लिए, मैं इस कोड को अपने ऐप में शामिल कर दूंगा, लेकिन मैं टेलरिक के साथ फिर से पालन करने जा रहा हूं और देख सकता हूं कि इस समाधान में कोई और परत है या नहीं।

2

मैंने लेआउट टेम्पलेट्स के साथ खेलने का प्रयास नहीं किया, तो मैंने RadTileList की ऊंचाई निर्धारित की। यह आइटम्सपेनल टेम्पलेट की तरह दिखता है: टाइललिस्ट पैनेल एक रैपपैनल की तरह व्यवहार करता है। मैक्सहेइट तक खुद को खींच रहा है।

यदि आप टाइल्स के टाइल टाइप को जोड़ते/हटाते या बदलते हैं तो आपको एक अलग ऊंचाई सेट करने की भी आवश्यकता होगी।

तस्वीर यहाँ है: LayoutIssue.jpg

<Window x:Class="WpfApplication2.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" 
    Title="MainWindow" > 
<Window.Resources> 
    <DataTemplate x:Key="DeptMapsTileGroupTemplate"> 
     <TextBlock Margin="0" 
        HorizontalAlignment="Left" 
        VerticalAlignment="Top" 
        FontFamily="Segoe UI" 
        FontSize="28" 
        Foreground="Black" 
        Text="{Binding Header}" /> 

    </DataTemplate> 
    <telerik:TileGroup x:Key="tilegroup" 
         DisplayIndex="0" 
         Header="Group" /> 
</Window.Resources> 
<Grid VerticalAlignment="Top"> 
    <telerik:RadTileList GroupTemplate="{StaticResource DeptMapsTileGroupTemplate}" Height="400"> 
     <telerik:RadTileList.Items> 
      <telerik:Tile TileType="Single" Group="{StaticResource tilegroup}"> 
       <TextBlock>Tile 1</TextBlock> 
      </telerik:Tile> 

      <telerik:Tile TileType="Double" Group="{StaticResource tilegroup}"> 
       <TextBlock>Tile 2</TextBlock> 
      </telerik:Tile> 

      <telerik:Tile TileType="Single" Group="{StaticResource tilegroup}"> 
       <TextBlock>Tile 3</TextBlock> 
      </telerik:Tile> 

     </telerik:RadTileList.Items> 
    </telerik:RadTileList> 
</Grid> 

+0

मैं वास्तव में इसे देखने में आपके समय और प्रयास की सराहना करता हूं। आपका समाधान, यद्यपि सही नहीं है, कुछ हद तक काम करता है। मुझे लगता है कि मैं आपको केवल बक्षीस दे सकता हूं, खासकर क्योंकि इस समय आपके पास केवल 1 प्रतिनिधि है। –

+0

मीठा। मैं पहले radtilelist का उपयोग कर रहा था, लेकिन अब मैंने इसके खिलाफ फैसला किया क्योंकि मुख्य रूप से नियंत्रण स्क्रीन के साथ आकार बदलता नहीं है। – Mofolo

संबंधित मुद्दे